YES 78.544
↳ HASKELL
↳ LR
((plusFM_C :: (a -> a -> a) -> FiniteMap Int a -> FiniteMap Int a -> FiniteMap Int a) :: (a -> a -> a) -> FiniteMap Int a -> FiniteMap Int a -> FiniteMap Int a) |
import qualified Maybe import qualified Prelude |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
data FiniteMap a b = EmptyFM | Branch a b Int (FiniteMap a b) (FiniteMap a b) |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
instance (Eq a, Eq b) => Eq (FiniteMap a b) where
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
addToFM :: Ord a => FiniteMap a b -> a -> b -> FiniteMap a b
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
addToFM_C :: Ord b => (a -> a -> a) -> FiniteMap b a -> b -> a -> FiniteMap b a
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
emptyFM :: FiniteMap b a
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
findMax :: FiniteMap a b -> (a,b)
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
findMin :: FiniteMap b a -> (b,a)
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
fmToList :: FiniteMap b a -> [(b,a)]
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
foldFM :: (b -> c -> a -> a) -> a -> FiniteMap b c -> a
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
lookupFM :: Ord a => FiniteMap a b -> a -> Maybe b
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
mkBalBranch :: Ord b => b -> a -> FiniteMap b a -> FiniteMap b a -> FiniteMap b a
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
mkBranch :: Ord b => Int -> b -> a -> FiniteMap b a -> FiniteMap b a -> FiniteMap b a
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
mkVBalBranch :: Ord b => b -> a -> FiniteMap b a -> FiniteMap b a -> FiniteMap b a
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
plusFM_C :: Ord a => (b -> b -> b) -> FiniteMap a b -> FiniteMap a b -> FiniteMap a b
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
sIZE_RATIO :: Int
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
sizeFM :: FiniteMap a b -> Int
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
splitGT :: Ord b => FiniteMap b a -> b -> FiniteMap b a
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
splitLT :: Ord a => FiniteMap a b -> a -> FiniteMap a b
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
unitFM :: a -> b -> FiniteMap a b
|
import qualified FiniteMap import qualified Prelude |
\keyeltrest→(key,elt) : rest
fmToList0 key elt rest = (key,elt) : rest
\oldnew→new
addToFM0 old new = new
↳ HASKELL
↳ LR
↳ HASKELL
↳ CR
((plusFM_C :: (a -> a -> a) -> FiniteMap Int a -> FiniteMap Int a -> FiniteMap Int a) :: (a -> a -> a) -> FiniteMap Int a -> FiniteMap Int a -> FiniteMap Int a) |
import qualified Maybe import qualified Prelude |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
data FiniteMap a b = EmptyFM | Branch a b Int (FiniteMap a b) (FiniteMap a b) |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
instance (Eq a, Eq b) => Eq (FiniteMap b a) where
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
addToFM :: Ord b => FiniteMap b a -> b -> a -> FiniteMap b a
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
addToFM_C :: Ord b => (a -> a -> a) -> FiniteMap b a -> b -> a -> FiniteMap b a
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
emptyFM :: FiniteMap b a
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
findMax :: FiniteMap b a -> (b,a)
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
findMin :: FiniteMap b a -> (b,a)
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
fmToList :: FiniteMap a b -> [(a,b)]
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
foldFM :: (c -> a -> b -> b) -> b -> FiniteMap c a -> b
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
lookupFM :: Ord b => FiniteMap b a -> b -> Maybe a
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
mkBalBranch :: Ord a => a -> b -> FiniteMap a b -> FiniteMap a b -> FiniteMap a b
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
mkBranch :: Ord b => Int -> b -> a -> FiniteMap b a -> FiniteMap b a -> FiniteMap b a
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
mkVBalBranch :: Ord a => a -> b -> FiniteMap a b -> FiniteMap a b -> FiniteMap a b
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
plusFM_C :: Ord a => (b -> b -> b) -> FiniteMap a b -> FiniteMap a b -> FiniteMap a b
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
sIZE_RATIO :: Int
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
sizeFM :: FiniteMap b a -> Int
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
splitGT :: Ord a => FiniteMap a b -> a -> FiniteMap a b
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
splitLT :: Ord a => FiniteMap a b -> a -> FiniteMap a b
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
unitFM :: b -> a -> FiniteMap b a
|
import qualified FiniteMap import qualified Prelude |
case fm_l of EmptyFM → True Branch left_key _ _ _ _ →
let
biggest_left_key = fst (findMax fm_l) in biggest_left_key < key
left_ok0 fm_l key EmptyFM = True left_ok0 fm_l key (Branch left_key _ _ _ _) =
let
biggest_left_key = fst (findMax fm_l) in biggest_left_key < key
case fm_r of EmptyFM → True Branch right_key _ _ _ _ →
let
smallest_right_key = fst (findMin fm_r) in key < smallest_right_key
right_ok0 fm_r key EmptyFM = True right_ok0 fm_r key (Branch right_key _ _ _ _) =
let
smallest_right_key = fst (findMin fm_r) in key < smallest_right_key
case fm_R of Branch _ _ _ fm_rl fm_rr
| sizeFM fm_rl < 2 * sizeFM fm_rr
→ single_L fm_L fm_R | otherwise
→ double_L fm_L fm_R
mkBalBranch0 fm_L fm_R (Branch _ _ _ fm_rl fm_rr)
| sizeFM fm_rl < 2 * sizeFM fm_rr
= single_L fm_L fm_R | otherwise
= double_L fm_L fm_R
case fm_L of Branch _ _ _ fm_ll fm_lr
| sizeFM fm_lr < 2 * sizeFM fm_ll
→ single_R fm_L fm_R | otherwise
→ double_R fm_L fm_R
mkBalBranch1 fm_L fm_R (Branch _ _ _ fm_ll fm_lr)
| sizeFM fm_lr < 2 * sizeFM fm_ll
= single_R fm_L fm_R | otherwise
= double_R fm_L fm_R
case lookupFM fm1 split_key of Nothing → elt2 Just elt1 → combiner elt1 elt2
new_elt0 elt2 combiner Nothing = elt2 new_elt0 elt2 combiner (Just elt1) = combiner elt1 elt2
case compare x y of EQ → o LT → LT GT → GT
primCompAux0 o EQ = o primCompAux0 o LT = LT primCompAux0 o GT = GT
↳ HASKELL
↳ LR
↳ HASKELL
↳ CR
↳ HASKELL
↳ IFR
((plusFM_C :: (a -> a -> a) -> FiniteMap Int a -> FiniteMap Int a -> FiniteMap Int a) :: (a -> a -> a) -> FiniteMap Int a -> FiniteMap Int a -> FiniteMap Int a) |
import qualified Maybe import qualified Prelude |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
data FiniteMap a b = EmptyFM | Branch a b Int (FiniteMap a b) (FiniteMap a b) |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
instance (Eq a, Eq b) => Eq (FiniteMap a b) where
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
addToFM :: Ord a => FiniteMap a b -> a -> b -> FiniteMap a b
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
addToFM_C :: Ord a => (b -> b -> b) -> FiniteMap a b -> a -> b -> FiniteMap a b
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
emptyFM :: FiniteMap a b
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
findMax :: FiniteMap a b -> (a,b)
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
findMin :: FiniteMap b a -> (b,a)
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
fmToList :: FiniteMap b a -> [(b,a)]
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
foldFM :: (b -> c -> a -> a) -> a -> FiniteMap b c -> a
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
lookupFM :: Ord a => FiniteMap a b -> a -> Maybe b
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
mkBalBranch :: Ord a => a -> b -> FiniteMap a b -> FiniteMap a b -> FiniteMap a b
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
mkBranch :: Ord b => Int -> b -> a -> FiniteMap b a -> FiniteMap b a -> FiniteMap b a
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
mkVBalBranch :: Ord b => b -> a -> FiniteMap b a -> FiniteMap b a -> FiniteMap b a
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
plusFM_C :: Ord b => (a -> a -> a) -> FiniteMap b a -> FiniteMap b a -> FiniteMap b a
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
sIZE_RATIO :: Int
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
sizeFM :: FiniteMap b a -> Int
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
splitGT :: Ord a => FiniteMap a b -> a -> FiniteMap a b
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
splitLT :: Ord b => FiniteMap b a -> b -> FiniteMap b a
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
unitFM :: a -> b -> FiniteMap a b
|
import qualified FiniteMap import qualified Prelude |
if primGEqNatS x y then Succ (primDivNatS (primMinusNatS x y) (Succ y)) else Zero
primDivNatS0 x y True = Succ (primDivNatS (primMinusNatS x y) (Succ y)) primDivNatS0 x y False = Zero
if primGEqNatS x y then primModNatS (primMinusNatS x y) (Succ y) else Succ x
primModNatS0 x y True = primModNatS (primMinusNatS x y) (Succ y) primModNatS0 x y False = Succ x
↳ HASKELL
↳ LR
↳ HASKELL
↳ CR
↳ HASKELL
↳ IFR
↳ HASKELL
↳ BR
((plusFM_C :: (a -> a -> a) -> FiniteMap Int a -> FiniteMap Int a -> FiniteMap Int a) :: (a -> a -> a) -> FiniteMap Int a -> FiniteMap Int a -> FiniteMap Int a) |
import qualified Maybe import qualified Prelude |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
data FiniteMap a b = EmptyFM | Branch a b Int (FiniteMap a b) (FiniteMap a b) |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
instance (Eq a, Eq b) => Eq (FiniteMap b a) where
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
addToFM :: Ord a => FiniteMap a b -> a -> b -> FiniteMap a b
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
addToFM_C :: Ord b => (a -> a -> a) -> FiniteMap b a -> b -> a -> FiniteMap b a
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
emptyFM :: FiniteMap b a
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
findMax :: FiniteMap a b -> (a,b)
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
findMin :: FiniteMap b a -> (b,a)
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
fmToList :: FiniteMap b a -> [(b,a)]
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
foldFM :: (c -> a -> b -> b) -> b -> FiniteMap c a -> b
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
lookupFM :: Ord a => FiniteMap a b -> a -> Maybe b
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
mkBalBranch :: Ord a => a -> b -> FiniteMap a b -> FiniteMap a b -> FiniteMap a b
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
mkBranch :: Ord b => Int -> b -> a -> FiniteMap b a -> FiniteMap b a -> FiniteMap b a
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
mkVBalBranch :: Ord a => a -> b -> FiniteMap a b -> FiniteMap a b -> FiniteMap a b
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
plusFM_C :: Ord b => (a -> a -> a) -> FiniteMap b a -> FiniteMap b a -> FiniteMap b a
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
sIZE_RATIO :: Int
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
sizeFM :: FiniteMap b a -> Int
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
splitGT :: Ord a => FiniteMap a b -> a -> FiniteMap a b
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
splitLT :: Ord b => FiniteMap b a -> b -> FiniteMap b a
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
unitFM :: a -> b -> FiniteMap a b
|
import qualified FiniteMap import qualified Prelude |
fm_l@(Branch yy yz zu zv zw)
Branch yy yz zu zv zw
fm_r@(Branch zy zz vuu vuv vuw)
Branch zy zz vuu vuv vuw
↳ HASKELL
↳ LR
↳ HASKELL
↳ CR
↳ HASKELL
↳ IFR
↳ HASKELL
↳ BR
↳ HASKELL
↳ COR
((plusFM_C :: (a -> a -> a) -> FiniteMap Int a -> FiniteMap Int a -> FiniteMap Int a) :: (a -> a -> a) -> FiniteMap Int a -> FiniteMap Int a -> FiniteMap Int a) |
import qualified Maybe import qualified Prelude |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
data FiniteMap a b = EmptyFM | Branch a b Int (FiniteMap a b) (FiniteMap a b) |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
instance (Eq a, Eq b) => Eq (FiniteMap b a) where
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
addToFM :: Ord a => FiniteMap a b -> a -> b -> FiniteMap a b
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
addToFM_C :: Ord a => (b -> b -> b) -> FiniteMap a b -> a -> b -> FiniteMap a b
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
emptyFM :: FiniteMap b a
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
findMax :: FiniteMap a b -> (a,b)
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
findMin :: FiniteMap b a -> (b,a)
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
fmToList :: FiniteMap b a -> [(b,a)]
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
foldFM :: (c -> b -> a -> a) -> a -> FiniteMap c b -> a
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
lookupFM :: Ord a => FiniteMap a b -> a -> Maybe b
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
mkBalBranch :: Ord b => b -> a -> FiniteMap b a -> FiniteMap b a -> FiniteMap b a
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
mkBranch :: Ord a => Int -> a -> b -> FiniteMap a b -> FiniteMap a b -> FiniteMap a b
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
mkVBalBranch :: Ord b => b -> a -> FiniteMap b a -> FiniteMap b a -> FiniteMap b a
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
plusFM_C :: Ord b => (a -> a -> a) -> FiniteMap b a -> FiniteMap b a -> FiniteMap b a
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
sIZE_RATIO :: Int
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
sizeFM :: FiniteMap a b -> Int
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
splitGT :: Ord a => FiniteMap a b -> a -> FiniteMap a b
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
splitLT :: Ord a => FiniteMap a b -> a -> FiniteMap a b
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
unitFM :: a -> b -> FiniteMap a b
|
import qualified FiniteMap import qualified Prelude |
splitLT EmptyFM split_key = emptyFM splitLT (Branch key elt xx fm_l fm_r) split_key
| split_key < key
= splitLT fm_l split_key | split_key > key
= mkVBalBranch key elt fm_l (splitLT fm_r split_key) | otherwise
= fm_l
splitLT EmptyFM split_key = splitLT4 EmptyFM split_key splitLT (Branch key elt xx fm_l fm_r) split_key = splitLT3 (Branch key elt xx fm_l fm_r) split_key
splitLT2 key elt xx fm_l fm_r split_key True = splitLT fm_l split_key splitLT2 key elt xx fm_l fm_r split_key False = splitLT1 key elt xx fm_l fm_r split_key (split_key > key)
splitLT1 key elt xx fm_l fm_r split_key True = mkVBalBranch key elt fm_l (splitLT fm_r split_key) splitLT1 key elt xx fm_l fm_r split_key False = splitLT0 key elt xx fm_l fm_r split_key otherwise
splitLT0 key elt xx fm_l fm_r split_key True = fm_l
splitLT3 (Branch key elt xx fm_l fm_r) split_key = splitLT2 key elt xx fm_l fm_r split_key (split_key < key)
splitLT4 EmptyFM split_key = emptyFM splitLT4 www wwx = splitLT3 www wwx
splitGT EmptyFM split_key = emptyFM splitGT (Branch key elt xy fm_l fm_r) split_key
| split_key > key
= splitGT fm_r split_key | split_key < key
= mkVBalBranch key elt (splitGT fm_l split_key) fm_r | otherwise
= fm_r
splitGT EmptyFM split_key = splitGT4 EmptyFM split_key splitGT (Branch key elt xy fm_l fm_r) split_key = splitGT3 (Branch key elt xy fm_l fm_r) split_key
splitGT2 key elt xy fm_l fm_r split_key True = splitGT fm_r split_key splitGT2 key elt xy fm_l fm_r split_key False = splitGT1 key elt xy fm_l fm_r split_key (split_key < key)
splitGT0 key elt xy fm_l fm_r split_key True = fm_r
splitGT1 key elt xy fm_l fm_r split_key True = mkVBalBranch key elt (splitGT fm_l split_key) fm_r splitGT1 key elt xy fm_l fm_r split_key False = splitGT0 key elt xy fm_l fm_r split_key otherwise
splitGT3 (Branch key elt xy fm_l fm_r) split_key = splitGT2 key elt xy fm_l fm_r split_key (split_key > key)
splitGT4 EmptyFM split_key = emptyFM splitGT4 wxu wxv = splitGT3 wxu wxv
mkVBalBranch key elt EmptyFM fm_r = addToFM fm_r key elt mkVBalBranch key elt fm_l EmptyFM = addToFM fm_l key elt mkVBalBranch key elt (Branch yy yz zu zv zw) (Branch zy zz vuu vuv vuw)
| sIZE_RATIO * size_l < size_r
= mkBalBranch zy zz (mkVBalBranch key elt (Branch yy yz zu zv zw) vuv) vuw | sIZE_RATIO * size_r < size_l
= mkBalBranch yy yz zv (mkVBalBranch key elt zw (Branch zy zz vuu vuv vuw)) | otherwise
= mkBranch 13 key elt (Branch yy yz zu zv zw) (Branch zy zz vuu vuv vuw) where
size_l = sizeFM (Branch yy yz zu zv zw)
size_r = sizeFM (Branch zy zz vuu vuv vuw)
mkVBalBranch key elt EmptyFM fm_r = mkVBalBranch5 key elt EmptyFM fm_r mkVBalBranch key elt fm_l EmptyFM = mkVBalBranch4 key elt fm_l EmptyFM mkVBalBranch key elt (Branch yy yz zu zv zw) (Branch zy zz vuu vuv vuw) = mkVBalBranch3 key elt (Branch yy yz zu zv zw) (Branch zy zz vuu vuv vuw)
mkVBalBranch3 key elt (Branch yy yz zu zv zw) (Branch zy zz vuu vuv vuw) =
mkVBalBranch2 key elt yy yz zu zv zw zy zz vuu vuv vuw (sIZE_RATIO * size_l < size_r) where
mkVBalBranch0 key elt yy yz zu zv zw zy zz vuu vuv vuw True = mkBranch 13 key elt (Branch yy yz zu zv zw) (Branch zy zz vuu vuv vuw)
mkVBalBranch1 key elt yy yz zu zv zw zy zz vuu vuv vuw True = mkBalBranch yy yz zv (mkVBalBranch key elt zw (Branch zy zz vuu vuv vuw)) mkVBalBranch1 key elt yy yz zu zv zw zy zz vuu vuv vuw False = mkVBalBranch0 key elt yy yz zu zv zw zy zz vuu vuv vuw otherwise
mkVBalBranch2 key elt yy yz zu zv zw zy zz vuu vuv vuw True = mkBalBranch zy zz (mkVBalBranch key elt (Branch yy yz zu zv zw) vuv) vuw mkVBalBranch2 key elt yy yz zu zv zw zy zz vuu vuv vuw False = mkVBalBranch1 key elt yy yz zu zv zw zy zz vuu vuv vuw (sIZE_RATIO * size_r < size_l)
size_l = sizeFM (Branch yy yz zu zv zw)
size_r = sizeFM (Branch zy zz vuu vuv vuw)
mkVBalBranch4 key elt fm_l EmptyFM = addToFM fm_l key elt mkVBalBranch4 wxz wyu wyv wyw = mkVBalBranch3 wxz wyu wyv wyw
mkVBalBranch5 key elt EmptyFM fm_r = addToFM fm_r key elt mkVBalBranch5 wyy wyz wzu wzv = mkVBalBranch4 wyy wyz wzu wzv
mkBalBranch1 fm_L fm_R (Branch vvu vvv vvw fm_ll fm_lr)
| sizeFM fm_lr < 2 * sizeFM fm_ll
= single_R fm_L fm_R | otherwise
= double_R fm_L fm_R
mkBalBranch1 fm_L fm_R (Branch vvu vvv vvw fm_ll fm_lr) = mkBalBranch12 fm_L fm_R (Branch vvu vvv vvw fm_ll fm_lr)
mkBalBranch10 fm_L fm_R vvu vvv vvw fm_ll fm_lr True = double_R fm_L fm_R
mkBalBranch11 fm_L fm_R vvu vvv vvw fm_ll fm_lr True = single_R fm_L fm_R mkBalBranch11 fm_L fm_R vvu vvv vvw fm_ll fm_lr False = mkBalBranch10 fm_L fm_R vvu vvv vvw fm_ll fm_lr otherwise
mkBalBranch12 fm_L fm_R (Branch vvu vvv vvw fm_ll fm_lr) = mkBalBranch11 fm_L fm_R vvu vvv vvw fm_ll fm_lr (sizeFM fm_lr < 2 * sizeFM fm_ll)
mkBalBranch0 fm_L fm_R (Branch vvz vwu vwv fm_rl fm_rr)
| sizeFM fm_rl < 2 * sizeFM fm_rr
= single_L fm_L fm_R | otherwise
= double_L fm_L fm_R
mkBalBranch0 fm_L fm_R (Branch vvz vwu vwv fm_rl fm_rr) = mkBalBranch02 fm_L fm_R (Branch vvz vwu vwv fm_rl fm_rr)
mkBalBranch01 fm_L fm_R vvz vwu vwv fm_rl fm_rr True = single_L fm_L fm_R mkBalBranch01 fm_L fm_R vvz vwu vwv fm_rl fm_rr False = mkBalBranch00 fm_L fm_R vvz vwu vwv fm_rl fm_rr otherwise
mkBalBranch00 fm_L fm_R vvz vwu vwv fm_rl fm_rr True = double_L fm_L fm_R
mkBalBranch02 fm_L fm_R (Branch vvz vwu vwv fm_rl fm_rr) = mkBalBranch01 fm_L fm_R vvz vwu vwv fm_rl fm_rr (sizeFM fm_rl < 2 * sizeFM fm_rr)
mkBalBranch key elt fm_L fm_R
| size_l + size_r < 2
= mkBranch 1 key elt fm_L fm_R | size_r > sIZE_RATIO * size_l
= mkBalBranch0 fm_L fm_R fm_R | size_l > sIZE_RATIO * size_r
= mkBalBranch1 fm_L fm_R fm_L | otherwise
= mkBranch 2 key elt fm_L fm_R where
double_L fm_l (Branch key_r elt_r vvx (Branch key_rl elt_rl vvy fm_rll fm_rlr) fm_rr) = mkBranch 5 key_rl elt_rl (mkBranch 6 key elt fm_l fm_rll) (mkBranch 7 key_r elt_r fm_rlr fm_rr)
double_R (Branch key_l elt_l vuy fm_ll (Branch key_lr elt_lr vuz fm_lrl fm_lrr)) fm_r = mkBranch 10 key_lr elt_lr (mkBranch 11 key_l elt_l fm_ll fm_lrl) (mkBranch 12 key elt fm_lrr fm_r)
mkBalBranch0 fm_L fm_R (Branch vvz vwu vwv fm_rl fm_rr)
| sizeFM fm_rl < 2 * sizeFM fm_rr
= single_L fm_L fm_R | otherwise
= double_L fm_L fm_R
mkBalBranch1 fm_L fm_R (Branch vvu vvv vvw fm_ll fm_lr)
| sizeFM fm_lr < 2 * sizeFM fm_ll
= single_R fm_L fm_R | otherwise
= double_R fm_L fm_R
single_L fm_l (Branch key_r elt_r vww fm_rl fm_rr) = mkBranch 3 key_r elt_r (mkBranch 4 key elt fm_l fm_rl) fm_rr
single_R (Branch key_l elt_l vux fm_ll fm_lr) fm_r = mkBranch 8 key_l elt_l fm_ll (mkBranch 9 key elt fm_lr fm_r)
size_l = sizeFM fm_L
size_r = sizeFM fm_R
mkBalBranch key elt fm_L fm_R = mkBalBranch6 key elt fm_L fm_R
mkBalBranch6 key elt fm_L fm_R =
mkBalBranch5 key elt fm_L fm_R (size_l + size_r < 2) where
double_L fm_l (Branch key_r elt_r vvx (Branch key_rl elt_rl vvy fm_rll fm_rlr) fm_rr) = mkBranch 5 key_rl elt_rl (mkBranch 6 key elt fm_l fm_rll) (mkBranch 7 key_r elt_r fm_rlr fm_rr)
double_R (Branch key_l elt_l vuy fm_ll (Branch key_lr elt_lr vuz fm_lrl fm_lrr)) fm_r = mkBranch 10 key_lr elt_lr (mkBranch 11 key_l elt_l fm_ll fm_lrl) (mkBranch 12 key elt fm_lrr fm_r)
mkBalBranch0 fm_L fm_R (Branch vvz vwu vwv fm_rl fm_rr) = mkBalBranch02 fm_L fm_R (Branch vvz vwu vwv fm_rl fm_rr)
mkBalBranch00 fm_L fm_R vvz vwu vwv fm_rl fm_rr True = double_L fm_L fm_R
mkBalBranch01 fm_L fm_R vvz vwu vwv fm_rl fm_rr True = single_L fm_L fm_R mkBalBranch01 fm_L fm_R vvz vwu vwv fm_rl fm_rr False = mkBalBranch00 fm_L fm_R vvz vwu vwv fm_rl fm_rr otherwise
mkBalBranch02 fm_L fm_R (Branch vvz vwu vwv fm_rl fm_rr) = mkBalBranch01 fm_L fm_R vvz vwu vwv fm_rl fm_rr (sizeFM fm_rl < 2 * sizeFM fm_rr)
mkBalBranch1 fm_L fm_R (Branch vvu vvv vvw fm_ll fm_lr) = mkBalBranch12 fm_L fm_R (Branch vvu vvv vvw fm_ll fm_lr)
mkBalBranch10 fm_L fm_R vvu vvv vvw fm_ll fm_lr True = double_R fm_L fm_R
mkBalBranch11 fm_L fm_R vvu vvv vvw fm_ll fm_lr True = single_R fm_L fm_R mkBalBranch11 fm_L fm_R vvu vvv vvw fm_ll fm_lr False = mkBalBranch10 fm_L fm_R vvu vvv vvw fm_ll fm_lr otherwise
mkBalBranch12 fm_L fm_R (Branch vvu vvv vvw fm_ll fm_lr) = mkBalBranch11 fm_L fm_R vvu vvv vvw fm_ll fm_lr (sizeFM fm_lr < 2 * sizeFM fm_ll)
mkBalBranch2 key elt fm_L fm_R True = mkBranch 2 key elt fm_L fm_R
mkBalBranch3 key elt fm_L fm_R True = mkBalBranch1 fm_L fm_R fm_L mkBalBranch3 key elt fm_L fm_R False = mkBalBranch2 key elt fm_L fm_R otherwise
mkBalBranch4 key elt fm_L fm_R True = mkBalBranch0 fm_L fm_R fm_R mkBalBranch4 key elt fm_L fm_R False = mkBalBranch3 key elt fm_L fm_R (size_l > sIZE_RATIO * size_r)
mkBalBranch5 key elt fm_L fm_R True = mkBranch 1 key elt fm_L fm_R mkBalBranch5 key elt fm_L fm_R False = mkBalBranch4 key elt fm_L fm_R (size_r > sIZE_RATIO * size_l)
single_L fm_l (Branch key_r elt_r vww fm_rl fm_rr) = mkBranch 3 key_r elt_r (mkBranch 4 key elt fm_l fm_rl) fm_rr
single_R (Branch key_l elt_l vux fm_ll fm_lr) fm_r = mkBranch 8 key_l elt_l fm_ll (mkBranch 9 key elt fm_lr fm_r)
size_l = sizeFM fm_L
size_r = sizeFM fm_R
addToFM_C combiner EmptyFM key elt = unitFM key elt addToFM_C combiner (Branch key elt size fm_l fm_r) new_key new_elt
| new_key < key
= mkBalBranch key elt (addToFM_C combiner fm_l new_key new_elt) fm_r | new_key > key
= mkBalBranch key elt fm_l (addToFM_C combiner fm_r new_key new_elt) | otherwise
= Branch new_key (combiner elt new_elt) size fm_l fm_r
addToFM_C combiner EmptyFM key elt = addToFM_C4 combiner EmptyFM key elt addToFM_C combiner (Branch key elt size fm_l fm_r) new_key new_elt = addToFM_C3 combiner (Branch key elt size fm_l fm_r) new_key new_elt
addToFM_C1 combiner key elt size fm_l fm_r new_key new_elt True = mkBalBranch key elt fm_l (addToFM_C combiner fm_r new_key new_elt) addToFM_C1 combiner key elt size fm_l fm_r new_key new_elt False = addToFM_C0 combiner key elt size fm_l fm_r new_key new_elt otherwise
addToFM_C0 combiner key elt size fm_l fm_r new_key new_elt True = Branch new_key (combiner elt new_elt) size fm_l fm_r
addToFM_C2 combiner key elt size fm_l fm_r new_key new_elt True = mkBalBranch key elt (addToFM_C combiner fm_l new_key new_elt) fm_r addToFM_C2 combiner key elt size fm_l fm_r new_key new_elt False = addToFM_C1 combiner key elt size fm_l fm_r new_key new_elt (new_key > key)
addToFM_C3 combiner (Branch key elt size fm_l fm_r) new_key new_elt = addToFM_C2 combiner key elt size fm_l fm_r new_key new_elt (new_key < key)
addToFM_C4 combiner EmptyFM key elt = unitFM key elt addToFM_C4 xuu xuv xuw xux = addToFM_C3 xuu xuv xuw xux
lookupFM EmptyFM key = Nothing lookupFM (Branch key elt vxv fm_l fm_r) key_to_find
| key_to_find < key
= lookupFM fm_l key_to_find | key_to_find > key
= lookupFM fm_r key_to_find | otherwise
= Just elt
lookupFM EmptyFM key = lookupFM4 EmptyFM key lookupFM (Branch key elt vxv fm_l fm_r) key_to_find = lookupFM3 (Branch key elt vxv fm_l fm_r) key_to_find
lookupFM2 key elt vxv fm_l fm_r key_to_find True = lookupFM fm_l key_to_find lookupFM2 key elt vxv fm_l fm_r key_to_find False = lookupFM1 key elt vxv fm_l fm_r key_to_find (key_to_find > key)
lookupFM1 key elt vxv fm_l fm_r key_to_find True = lookupFM fm_r key_to_find lookupFM1 key elt vxv fm_l fm_r key_to_find False = lookupFM0 key elt vxv fm_l fm_r key_to_find otherwise
lookupFM0 key elt vxv fm_l fm_r key_to_find True = Just elt
lookupFM3 (Branch key elt vxv fm_l fm_r) key_to_find = lookupFM2 key elt vxv fm_l fm_r key_to_find (key_to_find < key)
lookupFM4 EmptyFM key = Nothing lookupFM4 xvu xvv = lookupFM3 xvu xvv
compare x y
| x == y
= EQ | x <= y
= LT | otherwise
= GT
compare x y = compare3 x y
compare0 x y True = GT
compare1 x y True = LT compare1 x y False = compare0 x y otherwise
compare2 x y True = EQ compare2 x y False = compare1 x y (x <= y)
compare3 x y = compare2 x y (x == y)
gcd' x 0 = x gcd' x y = gcd' y (x `rem` y)
gcd' x xvw = gcd'2 x xvw gcd' x y = gcd'0 x y
gcd'0 x y = gcd' y (x `rem` y)
gcd'1 True x xvw = x gcd'1 xvx xvy xvz = gcd'0 xvy xvz
gcd'2 x xvw = gcd'1 (xvw == 0) x xvw gcd'2 xwu xwv = gcd'0 xwu xwv
gcd 0 0 = error [] gcd x y =
gcd' (abs x) (abs y) where
gcd' x 0 = x gcd' x y = gcd' y (x `rem` y)
gcd xww xwx = gcd3 xww xwx gcd x y = gcd0 x y
gcd0 x y =
gcd' (abs x) (abs y) where
gcd' x xvw = gcd'2 x xvw gcd' x y = gcd'0 x y
gcd'0 x y = gcd' y (x `rem` y)
gcd'1 True x xvw = x gcd'1 xvx xvy xvz = gcd'0 xvy xvz
gcd'2 x xvw = gcd'1 (xvw == 0) x xvw gcd'2 xwu xwv = gcd'0 xwu xwv
gcd1 True xww xwx = error [] gcd1 xwy xwz xxu = gcd0 xwz xxu
gcd2 True xww xwx = gcd1 (xwx == 0) xww xwx gcd2 xxv xxw xxx = gcd0 xxw xxx
gcd3 xww xwx = gcd2 (xww == 0) xww xwx gcd3 xxy xxz = gcd0 xxy xxz
absReal x
| x >= 0
= x | otherwise
= `negate` x
absReal x = absReal2 x
absReal1 x True = x absReal1 x False = absReal0 x otherwise
absReal0 x True = `negate` x
absReal2 x = absReal1 x (x >= 0)
undefined
| False
= undefined
undefined = undefined1
undefined0 True = undefined
undefined1 = undefined0 False
reduce x y
| y == 0
= error [] | otherwise
= x `quot` d :% (y `quot` d) where
d = gcd x y
reduce x y = reduce2 x y
reduce2 x y =
reduce1 x y (y == 0) where
d = gcd x y
reduce0 x y True = x `quot` d :% (y `quot` d)
reduce1 x y True = error [] reduce1 x y False = reduce0 x y otherwise
↳ HASKELL
↳ LR
↳ HASKELL
↳ CR
↳ HASKELL
↳ IFR
↳ HASKELL
↳ BR
↳ HASKELL
↳ COR
↳ HASKELL
↳ LetRed
((plusFM_C :: (a -> a -> a) -> FiniteMap Int a -> FiniteMap Int a -> FiniteMap Int a) :: (a -> a -> a) -> FiniteMap Int a -> FiniteMap Int a -> FiniteMap Int a) |
import qualified Maybe import qualified Prelude |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
data FiniteMap b a = EmptyFM | Branch b a Int (FiniteMap b a) (FiniteMap b a) |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
instance (Eq a, Eq b) => Eq (FiniteMap b a) where
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
addToFM :: Ord a => FiniteMap a b -> a -> b -> FiniteMap a b
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
addToFM_C :: Ord a => (b -> b -> b) -> FiniteMap a b -> a -> b -> FiniteMap a b
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
emptyFM :: FiniteMap a b
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
findMax :: FiniteMap b a -> (b,a)
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
findMin :: FiniteMap a b -> (a,b)
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
fmToList :: FiniteMap b a -> [(b,a)]
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
foldFM :: (c -> a -> b -> b) -> b -> FiniteMap c a -> b
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
lookupFM :: Ord b => FiniteMap b a -> b -> Maybe a
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
mkBalBranch :: Ord a => a -> b -> FiniteMap a b -> FiniteMap a b -> FiniteMap a b
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
mkBranch :: Ord b => Int -> b -> a -> FiniteMap b a -> FiniteMap b a -> FiniteMap b a
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
mkVBalBranch :: Ord a => a -> b -> FiniteMap a b -> FiniteMap a b -> FiniteMap a b
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
plusFM_C :: Ord a => (b -> b -> b) -> FiniteMap a b -> FiniteMap a b -> FiniteMap a b
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
sIZE_RATIO :: Int
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
sizeFM :: FiniteMap a b -> Int
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
splitGT :: Ord b => FiniteMap b a -> b -> FiniteMap b a
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
splitLT :: Ord a => FiniteMap a b -> a -> FiniteMap a b
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
unitFM :: b -> a -> FiniteMap b a
|
import qualified FiniteMap import qualified Prelude |
mkBalBranch5 key elt fm_L fm_R (size_l + size_r < 2) where
double_L fm_l (Branch key_r elt_r vvx (Branch key_rl elt_rl vvy fm_rll fm_rlr) fm_rr) = mkBranch 5 key_rl elt_rl (mkBranch 6 key elt fm_l fm_rll) (mkBranch 7 key_r elt_r fm_rlr fm_rr)
double_R (Branch key_l elt_l vuy fm_ll (Branch key_lr elt_lr vuz fm_lrl fm_lrr)) fm_r = mkBranch 10 key_lr elt_lr (mkBranch 11 key_l elt_l fm_ll fm_lrl) (mkBranch 12 key elt fm_lrr fm_r)
mkBalBranch0 fm_L fm_R (Branch vvz vwu vwv fm_rl fm_rr) = mkBalBranch02 fm_L fm_R (Branch vvz vwu vwv fm_rl fm_rr)
mkBalBranch00 fm_L fm_R vvz vwu vwv fm_rl fm_rr True = double_L fm_L fm_R
mkBalBranch01 fm_L fm_R vvz vwu vwv fm_rl fm_rr True = single_L fm_L fm_R mkBalBranch01 fm_L fm_R vvz vwu vwv fm_rl fm_rr False = mkBalBranch00 fm_L fm_R vvz vwu vwv fm_rl fm_rr otherwise
mkBalBranch02 fm_L fm_R (Branch vvz vwu vwv fm_rl fm_rr) = mkBalBranch01 fm_L fm_R vvz vwu vwv fm_rl fm_rr (sizeFM fm_rl < 2 * sizeFM fm_rr)
mkBalBranch1 fm_L fm_R (Branch vvu vvv vvw fm_ll fm_lr) = mkBalBranch12 fm_L fm_R (Branch vvu vvv vvw fm_ll fm_lr)
mkBalBranch10 fm_L fm_R vvu vvv vvw fm_ll fm_lr True = double_R fm_L fm_R
mkBalBranch11 fm_L fm_R vvu vvv vvw fm_ll fm_lr True = single_R fm_L fm_R mkBalBranch11 fm_L fm_R vvu vvv vvw fm_ll fm_lr False = mkBalBranch10 fm_L fm_R vvu vvv vvw fm_ll fm_lr otherwise
mkBalBranch12 fm_L fm_R (Branch vvu vvv vvw fm_ll fm_lr) = mkBalBranch11 fm_L fm_R vvu vvv vvw fm_ll fm_lr (sizeFM fm_lr < 2 * sizeFM fm_ll)
mkBalBranch2 key elt fm_L fm_R True = mkBranch 2 key elt fm_L fm_R
mkBalBranch3 key elt fm_L fm_R True = mkBalBranch1 fm_L fm_R fm_L mkBalBranch3 key elt fm_L fm_R False = mkBalBranch2 key elt fm_L fm_R otherwise
mkBalBranch4 key elt fm_L fm_R True = mkBalBranch0 fm_L fm_R fm_R mkBalBranch4 key elt fm_L fm_R False = mkBalBranch3 key elt fm_L fm_R (size_l > sIZE_RATIO * size_r)
mkBalBranch5 key elt fm_L fm_R True = mkBranch 1 key elt fm_L fm_R mkBalBranch5 key elt fm_L fm_R False = mkBalBranch4 key elt fm_L fm_R (size_r > sIZE_RATIO * size_l)
single_L fm_l (Branch key_r elt_r vww fm_rl fm_rr) = mkBranch 3 key_r elt_r (mkBranch 4 key elt fm_l fm_rl) fm_rr
single_R (Branch key_l elt_l vux fm_ll fm_lr) fm_r = mkBranch 8 key_l elt_l fm_ll (mkBranch 9 key elt fm_lr fm_r)
size_l = sizeFM fm_L
size_r = sizeFM fm_R
mkBalBranch6MkBalBranch3 xyu xyv xyw xyx key elt fm_L fm_R True = mkBalBranch6MkBalBranch1 xyu xyv xyw xyx fm_L fm_R fm_L mkBalBranch6MkBalBranch3 xyu xyv xyw xyx key elt fm_L fm_R False = mkBalBranch6MkBalBranch2 xyu xyv xyw xyx key elt fm_L fm_R otherwise
mkBalBranch6MkBalBranch10 xyu xyv xyw xyx fm_L fm_R vvu vvv vvw fm_ll fm_lr True = mkBalBranch6Double_R xyu xyv xyw xyx fm_L fm_R
mkBalBranch6MkBalBranch02 xyu xyv xyw xyx fm_L fm_R (Branch vvz vwu vwv fm_rl fm_rr) = mkBalBranch6MkBalBranch01 xyu xyv xyw xyx fm_L fm_R vvz vwu vwv fm_rl fm_rr (sizeFM fm_rl < 2 * sizeFM fm_rr)
mkBalBranch6MkBalBranch1 xyu xyv xyw xyx fm_L fm_R (Branch vvu vvv vvw fm_ll fm_lr) = mkBalBranch6MkBalBranch12 xyu xyv xyw xyx fm_L fm_R (Branch vvu vvv vvw fm_ll fm_lr)
mkBalBranch6MkBalBranch00 xyu xyv xyw xyx fm_L fm_R vvz vwu vwv fm_rl fm_rr True = mkBalBranch6Double_L xyu xyv xyw xyx fm_L fm_R
mkBalBranch6Size_r xyu xyv xyw xyx = sizeFM xyu
mkBalBranch6Size_l xyu xyv xyw xyx = sizeFM xyv
mkBalBranch6MkBalBranch2 xyu xyv xyw xyx key elt fm_L fm_R True = mkBranch 2 key elt fm_L fm_R
mkBalBranch6Single_R xyu xyv xyw xyx (Branch key_l elt_l vux fm_ll fm_lr) fm_r = mkBranch 8 key_l elt_l fm_ll (mkBranch 9 xyw xyx fm_lr fm_r)
mkBalBranch6MkBalBranch5 xyu xyv xyw xyx key elt fm_L fm_R True = mkBranch 1 key elt fm_L fm_R mkBalBranch6MkBalBranch5 xyu xyv xyw xyx key elt fm_L fm_R False = mkBalBranch6MkBalBranch4 xyu xyv xyw xyx key elt fm_L fm_R (mkBalBranch6Size_r xyu xyv xyw xyx > sIZE_RATIO * mkBalBranch6Size_l xyu xyv xyw xyx)
mkBalBranch6MkBalBranch11 xyu xyv xyw xyx fm_L fm_R vvu vvv vvw fm_ll fm_lr True = mkBalBranch6Single_R xyu xyv xyw xyx fm_L fm_R mkBalBranch6MkBalBranch11 xyu xyv xyw xyx fm_L fm_R vvu vvv vvw fm_ll fm_lr False = mkBalBranch6MkBalBranch10 xyu xyv xyw xyx fm_L fm_R vvu vvv vvw fm_ll fm_lr otherwise
mkBalBranch6MkBalBranch4 xyu xyv xyw xyx key elt fm_L fm_R True = mkBalBranch6MkBalBranch0 xyu xyv xyw xyx fm_L fm_R fm_R mkBalBranch6MkBalBranch4 xyu xyv xyw xyx key elt fm_L fm_R False = mkBalBranch6MkBalBranch3 xyu xyv xyw xyx key elt fm_L fm_R (mkBalBranch6Size_l xyu xyv xyw xyx > sIZE_RATIO * mkBalBranch6Size_r xyu xyv xyw xyx)
mkBalBranch6MkBalBranch0 xyu xyv xyw xyx fm_L fm_R (Branch vvz vwu vwv fm_rl fm_rr) = mkBalBranch6MkBalBranch02 xyu xyv xyw xyx fm_L fm_R (Branch vvz vwu vwv fm_rl fm_rr)
mkBalBranch6MkBalBranch12 xyu xyv xyw xyx fm_L fm_R (Branch vvu vvv vvw fm_ll fm_lr) = mkBalBranch6MkBalBranch11 xyu xyv xyw xyx fm_L fm_R vvu vvv vvw fm_ll fm_lr (sizeFM fm_lr < 2 * sizeFM fm_ll)
mkBalBranch6MkBalBranch01 xyu xyv xyw xyx fm_L fm_R vvz vwu vwv fm_rl fm_rr True = mkBalBranch6Single_L xyu xyv xyw xyx fm_L fm_R mkBalBranch6MkBalBranch01 xyu xyv xyw xyx fm_L fm_R vvz vwu vwv fm_rl fm_rr False = mkBalBranch6MkBalBranch00 xyu xyv xyw xyx fm_L fm_R vvz vwu vwv fm_rl fm_rr otherwise
mkBalBranch6Single_L xyu xyv xyw xyx fm_l (Branch key_r elt_r vww fm_rl fm_rr) = mkBranch 3 key_r elt_r (mkBranch 4 xyw xyx fm_l fm_rl) fm_rr
mkBalBranch6Double_L xyu xyv xyw xyx fm_l (Branch key_r elt_r vvx (Branch key_rl elt_rl vvy fm_rll fm_rlr) fm_rr) = mkBranch 5 key_rl elt_rl (mkBranch 6 xyw xyx fm_l fm_rll) (mkBranch 7 key_r elt_r fm_rlr fm_rr)
mkBalBranch6Double_R xyu xyv xyw xyx (Branch key_l elt_l vuy fm_ll (Branch key_lr elt_lr vuz fm_lrl fm_lrr)) fm_r = mkBranch 10 key_lr elt_lr (mkBranch 11 key_l elt_l fm_ll fm_lrl) (mkBranch 12 xyw xyx fm_lrr fm_r)
let
result = Branch key elt (unbox (1 + left_size + right_size)) fm_l fm_r in result where
balance_ok = True
left_ok = left_ok0 fm_l key fm_l
left_ok0 fm_l key EmptyFM = True left_ok0 fm_l key (Branch left_key vw vx vy vz) =
let
biggest_left_key = fst (findMax fm_l) in biggest_left_key < key
left_size = sizeFM fm_l
right_ok = right_ok0 fm_r key fm_r
right_ok0 fm_r key EmptyFM = True right_ok0 fm_r key (Branch right_key wu wv ww wx) =
let
smallest_right_key = fst (findMin fm_r) in key < smallest_right_key
right_size = sizeFM fm_r
unbox x = x
mkBranchLeft_ok0 xyy xyz xzu fm_l key EmptyFM = True mkBranchLeft_ok0 xyy xyz xzu fm_l key (Branch left_key vw vx vy vz) = mkBranchLeft_ok0Biggest_left_key fm_l < key
mkBranchRight_size xyy xyz xzu = sizeFM xyy
mkBranchRight_ok xyy xyz xzu = mkBranchRight_ok0 xyy xyz xzu xyy xyz xyy
mkBranchLeft_ok xyy xyz xzu = mkBranchLeft_ok0 xyy xyz xzu xzu xyz xzu
mkBranchUnbox xyy xyz xzu x = x
mkBranchBalance_ok xyy xyz xzu = True
mkBranchRight_ok0 xyy xyz xzu fm_r key EmptyFM = True mkBranchRight_ok0 xyy xyz xzu fm_r key (Branch right_key wu wv ww wx) = key < mkBranchRight_ok0Smallest_right_key fm_r
mkBranchLeft_size xyy xyz xzu = sizeFM xzu
let
result = Branch key elt (unbox (1 + left_size + right_size)) fm_l fm_r in result
mkBranchResult xzv xzw xzx xzy = Branch xzv xzw (mkBranchUnbox xzx xzv xzy (1 + mkBranchLeft_size xzx xzv xzy + mkBranchRight_size xzx xzv xzy)) xzy xzx
mkVBalBranch2 key elt yy yz zu zv zw zy zz vuu vuv vuw (sIZE_RATIO * size_l < size_r) where
mkVBalBranch0 key elt yy yz zu zv zw zy zz vuu vuv vuw True = mkBranch 13 key elt (Branch yy yz zu zv zw) (Branch zy zz vuu vuv vuw)
mkVBalBranch1 key elt yy yz zu zv zw zy zz vuu vuv vuw True = mkBalBranch yy yz zv (mkVBalBranch key elt zw (Branch zy zz vuu vuv vuw)) mkVBalBranch1 key elt yy yz zu zv zw zy zz vuu vuv vuw False = mkVBalBranch0 key elt yy yz zu zv zw zy zz vuu vuv vuw otherwise
mkVBalBranch2 key elt yy yz zu zv zw zy zz vuu vuv vuw True = mkBalBranch zy zz (mkVBalBranch key elt (Branch yy yz zu zv zw) vuv) vuw mkVBalBranch2 key elt yy yz zu zv zw zy zz vuu vuv vuw False = mkVBalBranch1 key elt yy yz zu zv zw zy zz vuu vuv vuw (sIZE_RATIO * size_r < size_l)
size_l = sizeFM (Branch yy yz zu zv zw)
size_r = sizeFM (Branch zy zz vuu vuv vuw)
mkVBalBranch3MkVBalBranch1 xzz yuu yuv yuw yux yuy yuz yvu yvv yvw key elt yy yz zu zv zw zy zz vuu vuv vuw True = mkBalBranch yy yz zv (mkVBalBranch key elt zw (Branch zy zz vuu vuv vuw)) mkVBalBranch3MkVBalBranch1 xzz yuu yuv yuw yux yuy yuz yvu yvv yvw key elt yy yz zu zv zw zy zz vuu vuv vuw False = mkVBalBranch3MkVBalBranch0 xzz yuu yuv yuw yux yuy yuz yvu yvv yvw key elt yy yz zu zv zw zy zz vuu vuv vuw otherwise
mkVBalBranch3Size_r xzz yuu yuv yuw yux yuy yuz yvu yvv yvw = sizeFM (Branch xzz yuu yuv yuw yux)
mkVBalBranch3MkVBalBranch2 xzz yuu yuv yuw yux yuy yuz yvu yvv yvw key elt yy yz zu zv zw zy zz vuu vuv vuw True = mkBalBranch zy zz (mkVBalBranch key elt (Branch yy yz zu zv zw) vuv) vuw mkVBalBranch3MkVBalBranch2 xzz yuu yuv yuw yux yuy yuz yvu yvv yvw key elt yy yz zu zv zw zy zz vuu vuv vuw False = mkVBalBranch3MkVBalBranch1 xzz yuu yuv yuw yux yuy yuz yvu yvv yvw key elt yy yz zu zv zw zy zz vuu vuv vuw (sIZE_RATIO * mkVBalBranch3Size_r xzz yuu yuv yuw yux yuy yuz yvu yvv yvw < mkVBalBranch3Size_l xzz yuu yuv yuw yux yuy yuz yvu yvv yvw)
mkVBalBranch3Size_l xzz yuu yuv yuw yux yuy yuz yvu yvv yvw = sizeFM (Branch yuy yuz yvu yvv yvw)
mkVBalBranch3MkVBalBranch0 xzz yuu yuv yuw yux yuy yuz yvu yvv yvw key elt yy yz zu zv zw zy zz vuu vuv vuw True = mkBranch 13 key elt (Branch yy yz zu zv zw) (Branch zy zz vuu vuv vuw)
mkVBalBranch split_key new_elt (plusFM_C combiner lts left) (plusFM_C combiner gts right) where
gts = splitGT fm1 split_key
lts = splitLT fm1 split_key
new_elt = new_elt0 elt2 combiner (lookupFM fm1 split_key)
new_elt0 elt2 combiner Nothing = elt2 new_elt0 elt2 combiner (Just elt1) = combiner elt1 elt2
plusFM_CGts yvx yvy yvz ywu = splitGT yvx yvy
plusFM_CNew_elt yvx yvy yvz ywu = plusFM_CNew_elt0 yvx yvy yvz ywu yvz ywu (lookupFM yvx yvy)
plusFM_CLts yvx yvy yvz ywu = splitLT yvx yvy
plusFM_CNew_elt0 yvx yvy yvz ywu elt2 combiner Nothing = elt2 plusFM_CNew_elt0 yvx yvy yvz ywu elt2 combiner (Just elt1) = combiner elt1 elt2
let
biggest_left_key = fst (findMax fm_l) in biggest_left_key < key
mkBranchLeft_ok0Biggest_left_key ywv = fst (findMax ywv)
let
smallest_right_key = fst (findMin fm_r) in key < smallest_right_key
mkBranchRight_ok0Smallest_right_key yww = fst (findMin yww)
reduce1 x y (y == 0) where
d = gcd x y
reduce0 x y True = x `quot` d :% (y `quot` d)
reduce1 x y True = error [] reduce1 x y False = reduce0 x y otherwise
reduce2D ywx ywy = gcd ywx ywy
reduce2Reduce0 ywx ywy x y True = x `quot` reduce2D ywx ywy :% (y `quot` reduce2D ywx ywy)
reduce2Reduce1 ywx ywy x y True = error [] reduce2Reduce1 ywx ywy x y False = reduce2Reduce0 ywx ywy x y otherwise
gcd' (abs x) (abs y) where
gcd' x xvw = gcd'2 x xvw gcd' x y = gcd'0 x y
gcd'0 x y = gcd' y (x `rem` y)
gcd'1 True x xvw = x gcd'1 xvx xvy xvz = gcd'0 xvy xvz
gcd'2 x xvw = gcd'1 (xvw == 0) x xvw gcd'2 xwu xwv = gcd'0 xwu xwv
gcd0Gcd'0 x y = gcd0Gcd' y (x `rem` y)
gcd0Gcd'2 x xvw = gcd0Gcd'1 (xvw == 0) x xvw gcd0Gcd'2 xwu xwv = gcd0Gcd'0 xwu xwv
gcd0Gcd' x xvw = gcd0Gcd'2 x xvw gcd0Gcd' x y = gcd0Gcd'0 x y
gcd0Gcd'1 True x xvw = x gcd0Gcd'1 xvx xvy xvz = gcd0Gcd'0 xvy xvz
↳ HASKELL
↳ LR
↳ HASKELL
↳ CR
↳ HASKELL
↳ IFR
↳ HASKELL
↳ BR
↳ HASKELL
↳ COR
↳ HASKELL
↳ LetRed
↳ HASKELL
↳ NumRed
((plusFM_C :: (a -> a -> a) -> FiniteMap Int a -> FiniteMap Int a -> FiniteMap Int a) :: (a -> a -> a) -> FiniteMap Int a -> FiniteMap Int a -> FiniteMap Int a) |
import qualified Maybe import qualified Prelude |
|||||||||||||
data FiniteMap a b = EmptyFM | Branch a b Int (FiniteMap a b) (FiniteMap a b) |
|||||||||||||
instance (Eq a, Eq b) => Eq (FiniteMap a b) where
|
|||||||||||||
addToFM :: Ord b => FiniteMap b a -> b -> a -> FiniteMap b a
|
|||||||||||||
|
|||||||||||||
addToFM_C :: Ord b => (a -> a -> a) -> FiniteMap b a -> b -> a -> FiniteMap b a
|
|||||||||||||
|
|||||||||||||
|
|||||||||||||
|
|||||||||||||
|
|||||||||||||
|
|||||||||||||
emptyFM :: FiniteMap a b
|
|||||||||||||
findMax :: FiniteMap b a -> (b,a)
|
|||||||||||||
findMin :: FiniteMap b a -> (b,a)
|
|||||||||||||
fmToList :: FiniteMap b a -> [(b,a)]
|
|||||||||||||
|
|||||||||||||
foldFM :: (a -> b -> c -> c) -> c -> FiniteMap a b -> c
|
|||||||||||||
lookupFM :: Ord b => FiniteMap b a -> b -> Maybe a
|
|||||||||||||
|
|||||||||||||
|
|||||||||||||
|
|||||||||||||
|
|||||||||||||
|
|||||||||||||
mkBalBranch :: Ord a => a -> b -> FiniteMap a b -> FiniteMap a b -> FiniteMap a b
|
|||||||||||||
|
|||||||||||||
|
|||||||||||||
|
|||||||||||||
|
|||||||||||||
|
|||||||||||||
|
|||||||||||||
|
|||||||||||||
|
|||||||||||||
|
|||||||||||||
|
|||||||||||||
|
|||||||||||||
|
|||||||||||||
|
|||||||||||||
|
|||||||||||||
|
|||||||||||||
|
|||||||||||||
|
|||||||||||||
|
|||||||||||||
|
|||||||||||||
mkBranch :: Ord b => Int -> b -> a -> FiniteMap b a -> FiniteMap b a -> FiniteMap b a
|
|||||||||||||
|
|||||||||||||
|
|||||||||||||
|
|||||||||||||
|
|||||||||||||
|
|||||||||||||
|
|||||||||||||
|
|||||||||||||
|
|||||||||||||
|
|||||||||||||
|
|||||||||||||
mkBranchUnbox :: Ord a => -> (FiniteMap a b) ( -> a ( -> (FiniteMap a b) (Int -> Int)))
|
|||||||||||||
mkVBalBranch :: Ord a => a -> b -> FiniteMap a b -> FiniteMap a b -> FiniteMap a b
|
|||||||||||||
|
|||||||||||||
|
|||||||||||||
|
|||||||||||||
|
|||||||||||||
|
|||||||||||||
|
|||||||||||||
|
|||||||||||||
|
|||||||||||||
plusFM_C :: Ord a => (b -> b -> b) -> FiniteMap a b -> FiniteMap a b -> FiniteMap a b
|
|||||||||||||
|
|||||||||||||
|
|||||||||||||
|
|||||||||||||
|
|||||||||||||
sIZE_RATIO :: Int
|
|||||||||||||
sizeFM :: FiniteMap b a -> Int
|
|||||||||||||
splitGT :: Ord b => FiniteMap b a -> b -> FiniteMap b a
|
|||||||||||||
|
|||||||||||||
|
|||||||||||||
|
|||||||||||||
|
|||||||||||||
|
|||||||||||||
splitLT :: Ord a => FiniteMap a b -> a -> FiniteMap a b
|
|||||||||||||
|
|||||||||||||
|
|||||||||||||
|
|||||||||||||
|
|||||||||||||
|
|||||||||||||
unitFM :: a -> b -> FiniteMap a b
|
import qualified FiniteMap import qualified Prelude |
↳ HASKELL
↳ LR
↳ HASKELL
↳ CR
↳ HASKELL
↳ IFR
↳ HASKELL
↳ BR
↳ HASKELL
↳ COR
↳ HASKELL
↳ LetRed
↳ HASKELL
↳ NumRed
↳ HASKELL
↳ Narrow
(plusFM_C :: (a -> a -> a) -> FiniteMap Int a -> FiniteMap Int a -> FiniteMap Int a) |
import qualified Maybe import qualified Prelude |
|||||||||||||
data FiniteMap a b = EmptyFM | Branch a b Int (FiniteMap a b) (FiniteMap a b) |
|||||||||||||
instance (Eq a, Eq b) => Eq (FiniteMap b a) where
|
|||||||||||||
addToFM :: Ord a => FiniteMap a b -> a -> b -> FiniteMap a b
|
|||||||||||||
|
|||||||||||||
addToFM_C :: Ord b => (a -> a -> a) -> FiniteMap b a -> b -> a -> FiniteMap b a
|
|||||||||||||
|
|||||||||||||
|
|||||||||||||
|
|||||||||||||
|
|||||||||||||
|
|||||||||||||
emptyFM :: FiniteMap a b
|
|||||||||||||
findMax :: FiniteMap b a -> (b,a)
|
|||||||||||||
findMin :: FiniteMap b a -> (b,a)
|
|||||||||||||
fmToList :: FiniteMap a b -> [(a,b)]
|
|||||||||||||
|
|||||||||||||
foldFM :: (b -> c -> a -> a) -> a -> FiniteMap b c -> a
|
|||||||||||||
lookupFM :: Ord a => FiniteMap a b -> a -> Maybe b
|
|||||||||||||
|
|||||||||||||
|
|||||||||||||
|
|||||||||||||
|
|||||||||||||
|
|||||||||||||
mkBalBranch :: Ord b => b -> a -> FiniteMap b a -> FiniteMap b a -> FiniteMap b a
|
|||||||||||||
|
|||||||||||||
|
|||||||||||||
|
|||||||||||||
|
|||||||||||||
|
|||||||||||||
|
|||||||||||||
|
|||||||||||||
|
|||||||||||||
|
|||||||||||||
|
|||||||||||||
|
|||||||||||||
|
|||||||||||||
|
|||||||||||||
|
|||||||||||||
|
|||||||||||||
|
|||||||||||||
|
|||||||||||||
|
|||||||||||||
|
|||||||||||||
mkBranch :: Ord b => Int -> b -> a -> FiniteMap b a -> FiniteMap b a -> FiniteMap b a
|
|||||||||||||
|
|||||||||||||
|
|||||||||||||
|
|||||||||||||
|
|||||||||||||
|
|||||||||||||
|
|||||||||||||
|
|||||||||||||
|
|||||||||||||
|
|||||||||||||
|
|||||||||||||
mkBranchUnbox :: Ord a => -> (FiniteMap a b) ( -> a ( -> (FiniteMap a b) (Int -> Int)))
|
|||||||||||||
mkVBalBranch :: Ord a => a -> b -> FiniteMap a b -> FiniteMap a b -> FiniteMap a b
|
|||||||||||||
|
|||||||||||||
|
|||||||||||||
|
|||||||||||||
|
|||||||||||||
|
|||||||||||||
|
|||||||||||||
|
|||||||||||||
|
|||||||||||||
plusFM_C :: Ord b => (a -> a -> a) -> FiniteMap b a -> FiniteMap b a -> FiniteMap b a
|
|||||||||||||
|
|||||||||||||
|
|||||||||||||
|
|||||||||||||
|
|||||||||||||
sIZE_RATIO :: Int
|
|||||||||||||
sizeFM :: FiniteMap a b -> Int
|
|||||||||||||
splitGT :: Ord a => FiniteMap a b -> a -> FiniteMap a b
|
|||||||||||||
|
|||||||||||||
|
|||||||||||||
|
|||||||||||||
|
|||||||||||||
|
|||||||||||||
splitLT :: Ord b => FiniteMap b a -> b -> FiniteMap b a
|
|||||||||||||
|
|||||||||||||
|
|||||||||||||
|
|||||||||||||
|
|||||||||||||
|
|||||||||||||
unitFM :: a -> b -> FiniteMap a b
|
import qualified FiniteMap import qualified Prelude |
↳ HASKELL
↳ LR
↳ HASKELL
↳ CR
↳ HASKELL
↳ IFR
↳ HASKELL
↳ BR
↳ HASKELL
↳ COR
↳ HASKELL
↳ LetRed
↳ HASKELL
↳ NumRed
↳ HASKELL
↳ Narrow
↳ AND
↳ QDP
↳ QDPSizeChangeProof
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
new_primMinusNat(Succ(ywz112100), Succ(ywz111900)) → new_primMinusNat(ywz112100, ywz111900)
From the DPs we obtained the following set of size-change graphs:
↳ HASKELL
↳ LR
↳ HASKELL
↳ CR
↳ HASKELL
↳ IFR
↳ HASKELL
↳ BR
↳ HASKELL
↳ COR
↳ HASKELL
↳ LetRed
↳ HASKELL
↳ NumRed
↳ HASKELL
↳ Narrow
↳ AND
↳ QDP
↳ QDP
↳ QDPSizeChangeProof
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
new_primPlusNat(Succ(ywz243000), Succ(ywz365000)) → new_primPlusNat(ywz243000, ywz365000)
From the DPs we obtained the following set of size-change graphs:
↳ HASKELL
↳ LR
↳ HASKELL
↳ CR
↳ HASKELL
↳ IFR
↳ HASKELL
↳ BR
↳ HASKELL
↳ COR
↳ HASKELL
↳ LetRed
↳ HASKELL
↳ NumRed
↳ HASKELL
↳ Narrow
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDPSizeChangeProof
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
new_esEs(Succ(ywz1055000), Succ(ywz104800)) → new_esEs(ywz1055000, ywz104800)
From the DPs we obtained the following set of size-change graphs:
↳ HASKELL
↳ LR
↳ HASKELL
↳ CR
↳ HASKELL
↳ IFR
↳ HASKELL
↳ BR
↳ HASKELL
↳ COR
↳ HASKELL
↳ LetRed
↳ HASKELL
↳ NumRed
↳ HASKELL
↳ Narrow
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDPSizeChangeProof
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
new_mkBalBranch6MkBalBranch3(ywz1023, ywz73, ywz70, ywz71, ywz1022, Succ(ywz1191000), Succ(ywz1190000), h) → new_mkBalBranch6MkBalBranch3(ywz1023, ywz73, ywz70, ywz71, ywz1022, ywz1191000, ywz1190000, h)
From the DPs we obtained the following set of size-change graphs:
↳ HASKELL
↳ LR
↳ HASKELL
↳ CR
↳ HASKELL
↳ IFR
↳ HASKELL
↳ BR
↳ HASKELL
↳ COR
↳ HASKELL
↳ LetRed
↳ HASKELL
↳ NumRed
↳ HASKELL
↳ Narrow
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDPSizeChangeProof
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
new_mkBalBranch6MkBalBranch4(ywz1023, ywz73, ywz70, ywz71, ywz1022, Succ(ywz1152000), Succ(ywz1149000), h) → new_mkBalBranch6MkBalBranch4(ywz1023, ywz73, ywz70, ywz71, ywz1022, ywz1152000, ywz1149000, h)
From the DPs we obtained the following set of size-change graphs:
↳ HASKELL
↳ LR
↳ HASKELL
↳ CR
↳ HASKELL
↳ IFR
↳ HASKELL
↳ BR
↳ HASKELL
↳ COR
↳ HASKELL
↳ LetRed
↳ HASKELL
↳ NumRed
↳ HASKELL
↳ Narrow
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDPSizeChangeProof
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
new_addToFM_C2(ywz740, ywz741, ywz742, ywz743, ywz744, ywz50, ywz9, True, ba) → new_addToFM_C(ywz743, ywz50, ywz9, ba)
new_addToFM_C2(Pos(Succ(ywz74000)), ywz741, ywz742, ywz743, ywz744, Pos(Succ(ywz5000)), ywz9, False, ba) → new_addToFM_C1(ywz74000, ywz741, ywz742, ywz743, ywz744, ywz5000, ywz9, ywz5000, ywz74000, ba)
new_addToFM_C3(ywz740, ywz741, ywz742, ywz743, ywz744, ywz50, ywz9, ba) → new_addToFM_C2(ywz740, ywz741, ywz742, ywz743, ywz744, ywz50, ywz9, new_lt(ywz50, ywz740), ba)
new_addToFM_C1(ywz1422, ywz1423, ywz1424, ywz1425, ywz1426, ywz1427, ywz1428, Succ(ywz14290), Succ(ywz14300), h) → new_addToFM_C1(ywz1422, ywz1423, ywz1424, ywz1425, ywz1426, ywz1427, ywz1428, ywz14290, ywz14300, h)
new_addToFM_C2(Pos(Zero), ywz741, ywz742, ywz743, ywz744, Pos(Succ(ywz5000)), ywz9, False, ba) → new_addToFM_C(ywz744, Pos(Succ(ywz5000)), ywz9, ba)
new_addToFM_C10(ywz1368, ywz1369, ywz1370, ywz1371, ywz1372, ywz1373, ywz1374, Succ(ywz13750), Succ(ywz13760), bb) → new_addToFM_C10(ywz1368, ywz1369, ywz1370, ywz1371, ywz1372, ywz1373, ywz1374, ywz13750, ywz13760, bb)
new_addToFM_C1(ywz1422, ywz1423, ywz1424, ywz1425, ywz1426, ywz1427, ywz1428, Succ(ywz14290), Zero, h) → new_addToFM_C(ywz1426, Pos(Succ(ywz1427)), ywz1428, h)
new_addToFM_C2(Neg(ywz7400), ywz741, ywz742, ywz743, ywz744, Pos(Succ(ywz5000)), ywz9, False, ba) → new_addToFM_C(ywz744, Pos(Succ(ywz5000)), ywz9, ba)
new_addToFM_C2(Neg(Succ(ywz74000)), ywz741, ywz742, ywz743, ywz744, Neg(Succ(ywz5000)), ywz9, False, ba) → new_addToFM_C10(ywz74000, ywz741, ywz742, ywz743, ywz744, ywz5000, ywz9, ywz74000, ywz5000, ba)
new_addToFM_C2(Neg(Succ(ywz74000)), ywz741, ywz742, ywz743, ywz744, Pos(Zero), ywz9, False, ba) → new_addToFM_C(ywz744, Pos(Zero), ywz9, ba)
new_addToFM_C2(ywz740, ywz741, ywz742, Branch(ywz7430, ywz7431, ywz7432, ywz7433, ywz7434), ywz744, ywz50, ywz9, True, ba) → new_addToFM_C3(ywz7430, ywz7431, ywz7432, ywz7433, ywz7434, ywz50, ywz9, ba)
new_addToFM_C10(ywz1368, ywz1369, ywz1370, ywz1371, ywz1372, ywz1373, ywz1374, Succ(ywz13750), Zero, bb) → new_addToFM_C(ywz1372, Neg(Succ(ywz1373)), ywz1374, bb)
new_addToFM_C(Branch(ywz7430, ywz7431, ywz7432, ywz7433, ywz7434), ywz50, ywz9, ba) → new_addToFM_C3(ywz7430, ywz7431, ywz7432, ywz7433, ywz7434, ywz50, ywz9, ba)
new_addToFM_C2(Neg(Succ(ywz74000)), ywz741, ywz742, ywz743, ywz744, Neg(Zero), ywz9, False, ba) → new_addToFM_C(ywz744, Neg(Zero), ywz9, ba)
new_lt(Pos(Zero), Neg(Succ(ywz83200))) → new_esEs2
new_lt(Neg(Zero), Pos(Succ(ywz83200))) → new_esEs1
new_lt(Pos(Zero), Neg(Zero)) → new_esEs0
new_lt(Neg(Zero), Pos(Zero)) → new_esEs0
new_lt(Neg(Zero), Neg(Zero)) → new_esEs0
new_lt(Pos(Succ(ywz83700)), Pos(ywz8320)) → new_esEs3(Succ(ywz83700), ywz8320)
new_lt(Pos(Zero), Pos(Succ(ywz83200))) → new_esEs3(Zero, Succ(ywz83200))
new_lt(Neg(Succ(ywz83700)), Neg(ywz8320)) → new_esEs3(ywz8320, Succ(ywz83700))
new_esEs3(Zero, Zero) → new_esEs0
new_esEs1 → True
new_esEs0 → False
new_esEs3(Succ(ywz1055000), Zero) → new_esEs2
new_esEs3(Succ(ywz1055000), Succ(ywz104800)) → new_esEs3(ywz1055000, ywz104800)
new_lt(Pos(Zero), Pos(Zero)) → new_esEs0
new_lt(Pos(Succ(ywz83700)), Neg(ywz8320)) → new_esEs2
new_esEs2 → False
new_esEs3(Zero, Succ(ywz104800)) → new_esEs1
new_lt(Neg(Zero), Neg(Succ(ywz83200))) → new_esEs3(Succ(ywz83200), Zero)
new_lt(Neg(Succ(ywz83700)), Pos(ywz8320)) → new_esEs1
new_esEs3(Succ(x0), Succ(x1))
new_esEs3(Zero, Succ(x0))
new_lt(Neg(Zero), Neg(Succ(x0)))
new_lt(Pos(Zero), Pos(Zero))
new_esEs0
new_lt(Pos(Zero), Pos(Succ(x0)))
new_lt(Neg(Zero), Pos(Succ(x0)))
new_lt(Pos(Zero), Neg(Succ(x0)))
new_esEs3(Succ(x0), Zero)
new_lt(Pos(Succ(x0)), Pos(x1))
new_esEs3(Zero, Zero)
new_lt(Neg(Succ(x0)), Neg(x1))
new_esEs2
new_lt(Neg(Zero), Pos(Zero))
new_lt(Pos(Zero), Neg(Zero))
new_lt(Neg(Succ(x0)), Pos(x1))
new_lt(Pos(Succ(x0)), Neg(x1))
new_esEs1
new_lt(Neg(Zero), Neg(Zero))
From the DPs we obtained the following set of size-change graphs:
↳ HASKELL
↳ LR
↳ HASKELL
↳ CR
↳ HASKELL
↳ IFR
↳ HASKELL
↳ BR
↳ HASKELL
↳ COR
↳ HASKELL
↳ LetRed
↳ HASKELL
↳ NumRed
↳ HASKELL
↳ Narrow
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
new_mkVBalBranch(ywz50, ywz9, ywz740, ywz741, ywz742, ywz743, ywz744, Branch(ywz6330, ywz6331, ywz6332, ywz6333, ywz6334), h) → new_mkVBalBranch3MkVBalBranch2(ywz6330, ywz6331, ywz6332, ywz6333, ywz6334, ywz740, ywz741, ywz742, ywz743, ywz744, ywz50, ywz9, new_lt(new_sr(new_mkVBalBranch3Size_l(ywz6330, ywz6331, ywz6332, ywz6333, ywz6334, ywz740, ywz741, ywz742, ywz743, ywz744, h)), new_mkVBalBranch3Size_r(ywz6330, ywz6331, ywz6332, ywz6333, ywz6334, ywz740, ywz741, ywz742, ywz743, ywz744, h)), h)
new_mkVBalBranch3MkVBalBranch2(ywz630, ywz631, ywz632, ywz633, ywz634, ywz740, ywz741, ywz742, ywz743, ywz744, ywz50, ywz9, False, h) → new_mkVBalBranch3MkVBalBranch1(ywz630, ywz631, ywz632, ywz633, ywz634, ywz740, ywz741, ywz742, ywz743, ywz744, ywz50, ywz9, new_lt(new_sr(new_mkVBalBranch3Size_r(ywz630, ywz631, ywz632, ywz633, ywz634, ywz740, ywz741, ywz742, ywz743, ywz744, h)), new_mkVBalBranch3Size_l(ywz630, ywz631, ywz632, ywz633, ywz634, ywz740, ywz741, ywz742, ywz743, ywz744, h)), h)
new_mkVBalBranch3MkVBalBranch1(ywz630, ywz631, ywz632, ywz633, ywz634, ywz740, ywz741, ywz742, ywz743, ywz744, ywz50, ywz9, True, h) → new_mkVBalBranch0(ywz50, ywz9, ywz744, ywz630, ywz631, ywz632, ywz633, ywz634, h)
new_mkVBalBranch3(ywz50, ywz9, ywz740, ywz741, ywz742, ywz743, ywz744, ywz6330, ywz6331, ywz6332, ywz6333, ywz6334, h) → new_mkVBalBranch3MkVBalBranch2(ywz6330, ywz6331, ywz6332, ywz6333, ywz6334, ywz740, ywz741, ywz742, ywz743, ywz744, ywz50, ywz9, new_lt(new_sr(new_mkVBalBranch3Size_l(ywz6330, ywz6331, ywz6332, ywz6333, ywz6334, ywz740, ywz741, ywz742, ywz743, ywz744, h)), new_mkVBalBranch3Size_r(ywz6330, ywz6331, ywz6332, ywz6333, ywz6334, ywz740, ywz741, ywz742, ywz743, ywz744, h)), h)
new_mkVBalBranch3MkVBalBranch2(ywz630, ywz631, ywz632, Branch(ywz6330, ywz6331, ywz6332, ywz6333, ywz6334), ywz634, ywz740, ywz741, ywz742, ywz743, ywz744, ywz50, ywz9, True, h) → new_mkVBalBranch3MkVBalBranch2(ywz6330, ywz6331, ywz6332, ywz6333, ywz6334, ywz740, ywz741, ywz742, ywz743, ywz744, ywz50, ywz9, new_lt(new_sr(new_mkVBalBranch3Size_l(ywz6330, ywz6331, ywz6332, ywz6333, ywz6334, ywz740, ywz741, ywz742, ywz743, ywz744, h)), new_mkVBalBranch3Size_r(ywz6330, ywz6331, ywz6332, ywz6333, ywz6334, ywz740, ywz741, ywz742, ywz743, ywz744, h)), h)
new_mkVBalBranch3MkVBalBranch2(ywz630, ywz631, ywz632, ywz633, ywz634, ywz740, ywz741, ywz742, ywz743, ywz744, ywz50, ywz9, True, h) → new_mkVBalBranch(ywz50, ywz9, ywz740, ywz741, ywz742, ywz743, ywz744, ywz633, h)
new_mkVBalBranch3MkVBalBranch1(ywz630, ywz631, ywz632, ywz633, ywz634, ywz740, ywz741, ywz742, ywz743, Branch(ywz7440, ywz7441, ywz7442, ywz7443, ywz7444), ywz50, ywz9, True, h) → new_mkVBalBranch3(ywz50, ywz9, ywz7440, ywz7441, ywz7442, ywz7443, ywz7444, ywz630, ywz631, ywz632, ywz633, ywz634, h)
new_mkVBalBranch0(ywz50, ywz9, Branch(ywz7440, ywz7441, ywz7442, ywz7443, ywz7444), ywz630, ywz631, ywz632, ywz633, ywz634, h) → new_mkVBalBranch3(ywz50, ywz9, ywz7440, ywz7441, ywz7442, ywz7443, ywz7444, ywz630, ywz631, ywz632, ywz633, ywz634, h)
new_lt(Pos(Zero), Neg(Succ(ywz83200))) → new_esEs2
new_lt(Neg(Zero), Pos(Zero)) → new_esEs0
new_lt(Pos(Zero), Neg(Zero)) → new_esEs0
new_lt(Neg(Zero), Neg(Zero)) → new_esEs0
new_sr(Neg(ywz10560)) → Neg(new_primMulNat(ywz10560))
new_sizeFM(EmptyFM, h) → Pos(Zero)
new_primMulNat(Zero) → Zero
new_esEs3(Succ(ywz1055000), Succ(ywz104800)) → new_esEs3(ywz1055000, ywz104800)
new_primPlusNat2(Succ(ywz243000), Zero) → Succ(ywz243000)
new_primPlusNat2(Zero, Succ(ywz365000)) → Succ(ywz365000)
new_lt(Pos(Succ(ywz83700)), Neg(ywz8320)) → new_esEs2
new_primPlusNat5(Zero) → Succ(new_primPlusNat2(new_primPlusNat2(Succ(Succ(Zero)), Succ(Succ(Zero))), Succ(Zero)))
new_primMulNat0(ywz7200) → Succ(Succ(new_primPlusNat3(ywz7200)))
new_esEs3(Zero, Succ(ywz104800)) → new_esEs1
new_primPlusNat4(Succ(ywz720000)) → Succ(Succ(new_primPlusNat5(ywz720000)))
new_primMulNat(Succ(ywz105600)) → new_primPlusNat2(new_primMulNat0(ywz105600), Succ(ywz105600))
new_lt(Neg(Zero), Neg(Succ(ywz83200))) → new_esEs3(Succ(ywz83200), Zero)
new_lt(Neg(Succ(ywz83700)), Pos(ywz8320)) → new_esEs1
new_primPlusNat1 → Zero
new_lt(Neg(Zero), Pos(Succ(ywz83200))) → new_esEs1
new_mkVBalBranch3Size_r(ywz60, ywz61, ywz62, ywz63, ywz64, ywz70, ywz71, ywz72, ywz73, ywz74, h) → new_sizeFM(Branch(ywz60, ywz61, ywz62, ywz63, ywz64), h)
new_primPlusNat3(Zero) → Succ(Succ(new_primPlusNat1))
new_sizeFM(Branch(ywz630, ywz631, ywz632, ywz633, ywz634), h) → ywz632
new_lt(Pos(Succ(ywz83700)), Pos(ywz8320)) → new_esEs3(Succ(ywz83700), ywz8320)
new_mkVBalBranch3Size_l(ywz60, ywz61, ywz62, ywz63, ywz64, ywz70, ywz71, ywz72, ywz73, ywz74, h) → new_sizeFM(Branch(ywz70, ywz71, ywz72, ywz73, ywz74), h)
new_lt(Pos(Zero), Pos(Succ(ywz83200))) → new_esEs3(Zero, Succ(ywz83200))
new_lt(Neg(Succ(ywz83700)), Neg(ywz8320)) → new_esEs3(ywz8320, Succ(ywz83700))
new_esEs3(Zero, Zero) → new_esEs0
new_primPlusNat5(Succ(ywz7200000)) → Succ(Succ(new_primPlusNat2(new_primPlusNat2(new_primPlusNat2(Succ(Succ(Succ(ywz7200000))), Succ(Succ(Succ(ywz7200000)))), Succ(Succ(ywz7200000))), ywz7200000)))
new_sr(Pos(ywz10560)) → Pos(new_primMulNat(ywz10560))
new_esEs1 → True
new_primPlusNat2(Zero, Zero) → Zero
new_esEs0 → False
new_esEs3(Succ(ywz1055000), Zero) → new_esEs2
new_primPlusNat2(Succ(ywz243000), Succ(ywz365000)) → Succ(Succ(new_primPlusNat2(ywz243000, ywz365000)))
new_lt(Pos(Zero), Pos(Zero)) → new_esEs0
new_esEs2 → False
new_primPlusNat3(Succ(ywz72000)) → Succ(Succ(new_primPlusNat4(ywz72000)))
new_primPlusNat4(Zero) → Succ(Succ(new_primPlusNat0(new_primPlusNat1)))
new_primPlusNat0(ywz295) → Succ(Succ(ywz295))
new_esEs3(Succ(x0), Succ(x1))
new_lt(Pos(Zero), Pos(Zero))
new_primPlusNat4(Succ(x0))
new_mkVBalBranch3Size_r(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10)
new_primPlusNat0(x0)
new_primPlusNat2(Succ(x0), Zero)
new_primPlusNat3(Succ(x0))
new_esEs0
new_primMulNat(Zero)
new_lt(Pos(Zero), Neg(Succ(x0)))
new_lt(Neg(Zero), Pos(Succ(x0)))
new_lt(Pos(Succ(x0)), Pos(x1))
new_lt(Neg(Succ(x0)), Neg(x1))
new_lt(Neg(Zero), Pos(Zero))
new_lt(Pos(Zero), Neg(Zero))
new_primPlusNat5(Succ(x0))
new_esEs1
new_lt(Neg(Zero), Neg(Zero))
new_mkVBalBranch3Size_l(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10)
new_sr(Pos(x0))
new_esEs3(Zero, Succ(x0))
new_primPlusNat3(Zero)
new_lt(Neg(Zero), Neg(Succ(x0)))
new_primMulNat(Succ(x0))
new_primPlusNat1
new_sr(Neg(x0))
new_primPlusNat2(Zero, Zero)
new_lt(Pos(Zero), Pos(Succ(x0)))
new_primPlusNat5(Zero)
new_esEs3(Succ(x0), Zero)
new_esEs3(Zero, Zero)
new_primPlusNat4(Zero)
new_esEs2
new_sizeFM(Branch(x0, x1, x2, x3, x4), x5)
new_primMulNat0(x0)
new_sizeFM(EmptyFM, x0)
new_lt(Pos(Succ(x0)), Neg(x1))
new_lt(Neg(Succ(x0)), Pos(x1))
new_primPlusNat2(Succ(x0), Succ(x1))
new_primPlusNat2(Zero, Succ(x0))
↳ HASKELL
↳ LR
↳ HASKELL
↳ CR
↳ HASKELL
↳ IFR
↳ HASKELL
↳ BR
↳ HASKELL
↳ COR
↳ HASKELL
↳ LetRed
↳ HASKELL
↳ NumRed
↳ HASKELL
↳ Narrow
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QDPSizeChangeProof
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
new_mkVBalBranch(ywz50, ywz9, ywz740, ywz741, ywz742, ywz743, ywz744, Branch(ywz6330, ywz6331, ywz6332, ywz6333, ywz6334), h) → new_mkVBalBranch3MkVBalBranch2(ywz6330, ywz6331, ywz6332, ywz6333, ywz6334, ywz740, ywz741, ywz742, ywz743, ywz744, ywz50, ywz9, new_lt(new_sr(new_mkVBalBranch3Size_l(ywz6330, ywz6331, ywz6332, ywz6333, ywz6334, ywz740, ywz741, ywz742, ywz743, ywz744, h)), new_mkVBalBranch3Size_r(ywz6330, ywz6331, ywz6332, ywz6333, ywz6334, ywz740, ywz741, ywz742, ywz743, ywz744, h)), h)
new_mkVBalBranch3MkVBalBranch2(ywz630, ywz631, ywz632, ywz633, ywz634, ywz740, ywz741, ywz742, ywz743, ywz744, ywz50, ywz9, False, h) → new_mkVBalBranch3MkVBalBranch1(ywz630, ywz631, ywz632, ywz633, ywz634, ywz740, ywz741, ywz742, ywz743, ywz744, ywz50, ywz9, new_lt(new_sr(new_mkVBalBranch3Size_r(ywz630, ywz631, ywz632, ywz633, ywz634, ywz740, ywz741, ywz742, ywz743, ywz744, h)), new_mkVBalBranch3Size_l(ywz630, ywz631, ywz632, ywz633, ywz634, ywz740, ywz741, ywz742, ywz743, ywz744, h)), h)
new_mkVBalBranch3MkVBalBranch1(ywz630, ywz631, ywz632, ywz633, ywz634, ywz740, ywz741, ywz742, ywz743, ywz744, ywz50, ywz9, True, h) → new_mkVBalBranch0(ywz50, ywz9, ywz744, ywz630, ywz631, ywz632, ywz633, ywz634, h)
new_mkVBalBranch3(ywz50, ywz9, ywz740, ywz741, ywz742, ywz743, ywz744, ywz6330, ywz6331, ywz6332, ywz6333, ywz6334, h) → new_mkVBalBranch3MkVBalBranch2(ywz6330, ywz6331, ywz6332, ywz6333, ywz6334, ywz740, ywz741, ywz742, ywz743, ywz744, ywz50, ywz9, new_lt(new_sr(new_mkVBalBranch3Size_l(ywz6330, ywz6331, ywz6332, ywz6333, ywz6334, ywz740, ywz741, ywz742, ywz743, ywz744, h)), new_mkVBalBranch3Size_r(ywz6330, ywz6331, ywz6332, ywz6333, ywz6334, ywz740, ywz741, ywz742, ywz743, ywz744, h)), h)
new_mkVBalBranch3MkVBalBranch2(ywz630, ywz631, ywz632, Branch(ywz6330, ywz6331, ywz6332, ywz6333, ywz6334), ywz634, ywz740, ywz741, ywz742, ywz743, ywz744, ywz50, ywz9, True, h) → new_mkVBalBranch3MkVBalBranch2(ywz6330, ywz6331, ywz6332, ywz6333, ywz6334, ywz740, ywz741, ywz742, ywz743, ywz744, ywz50, ywz9, new_lt(new_sr(new_mkVBalBranch3Size_l(ywz6330, ywz6331, ywz6332, ywz6333, ywz6334, ywz740, ywz741, ywz742, ywz743, ywz744, h)), new_mkVBalBranch3Size_r(ywz6330, ywz6331, ywz6332, ywz6333, ywz6334, ywz740, ywz741, ywz742, ywz743, ywz744, h)), h)
new_mkVBalBranch3MkVBalBranch2(ywz630, ywz631, ywz632, ywz633, ywz634, ywz740, ywz741, ywz742, ywz743, ywz744, ywz50, ywz9, True, h) → new_mkVBalBranch(ywz50, ywz9, ywz740, ywz741, ywz742, ywz743, ywz744, ywz633, h)
new_mkVBalBranch3MkVBalBranch1(ywz630, ywz631, ywz632, ywz633, ywz634, ywz740, ywz741, ywz742, ywz743, Branch(ywz7440, ywz7441, ywz7442, ywz7443, ywz7444), ywz50, ywz9, True, h) → new_mkVBalBranch3(ywz50, ywz9, ywz7440, ywz7441, ywz7442, ywz7443, ywz7444, ywz630, ywz631, ywz632, ywz633, ywz634, h)
new_mkVBalBranch0(ywz50, ywz9, Branch(ywz7440, ywz7441, ywz7442, ywz7443, ywz7444), ywz630, ywz631, ywz632, ywz633, ywz634, h) → new_mkVBalBranch3(ywz50, ywz9, ywz7440, ywz7441, ywz7442, ywz7443, ywz7444, ywz630, ywz631, ywz632, ywz633, ywz634, h)
new_mkVBalBranch3Size_l(ywz60, ywz61, ywz62, ywz63, ywz64, ywz70, ywz71, ywz72, ywz73, ywz74, h) → new_sizeFM(Branch(ywz70, ywz71, ywz72, ywz73, ywz74), h)
new_sr(Neg(ywz10560)) → Neg(new_primMulNat(ywz10560))
new_sr(Pos(ywz10560)) → Pos(new_primMulNat(ywz10560))
new_mkVBalBranch3Size_r(ywz60, ywz61, ywz62, ywz63, ywz64, ywz70, ywz71, ywz72, ywz73, ywz74, h) → new_sizeFM(Branch(ywz60, ywz61, ywz62, ywz63, ywz64), h)
new_lt(Pos(Zero), Neg(Succ(ywz83200))) → new_esEs2
new_lt(Neg(Zero), Pos(Zero)) → new_esEs0
new_lt(Pos(Zero), Neg(Zero)) → new_esEs0
new_lt(Neg(Zero), Neg(Zero)) → new_esEs0
new_lt(Pos(Succ(ywz83700)), Neg(ywz8320)) → new_esEs2
new_lt(Neg(Zero), Neg(Succ(ywz83200))) → new_esEs3(Succ(ywz83200), Zero)
new_lt(Neg(Succ(ywz83700)), Pos(ywz8320)) → new_esEs1
new_lt(Neg(Zero), Pos(Succ(ywz83200))) → new_esEs1
new_lt(Pos(Succ(ywz83700)), Pos(ywz8320)) → new_esEs3(Succ(ywz83700), ywz8320)
new_lt(Pos(Zero), Pos(Succ(ywz83200))) → new_esEs3(Zero, Succ(ywz83200))
new_lt(Neg(Succ(ywz83700)), Neg(ywz8320)) → new_esEs3(ywz8320, Succ(ywz83700))
new_lt(Pos(Zero), Pos(Zero)) → new_esEs0
new_esEs0 → False
new_esEs3(Succ(ywz1055000), Succ(ywz104800)) → new_esEs3(ywz1055000, ywz104800)
new_esEs3(Zero, Succ(ywz104800)) → new_esEs1
new_esEs1 → True
new_esEs3(Zero, Zero) → new_esEs0
new_esEs3(Succ(ywz1055000), Zero) → new_esEs2
new_esEs2 → False
new_sizeFM(Branch(ywz630, ywz631, ywz632, ywz633, ywz634), h) → ywz632
new_primMulNat(Zero) → Zero
new_primMulNat(Succ(ywz105600)) → new_primPlusNat2(new_primMulNat0(ywz105600), Succ(ywz105600))
new_primMulNat0(ywz7200) → Succ(Succ(new_primPlusNat3(ywz7200)))
new_primPlusNat2(Zero, Succ(ywz365000)) → Succ(ywz365000)
new_primPlusNat2(Succ(ywz243000), Succ(ywz365000)) → Succ(Succ(new_primPlusNat2(ywz243000, ywz365000)))
new_primPlusNat2(Succ(ywz243000), Zero) → Succ(ywz243000)
new_primPlusNat2(Zero, Zero) → Zero
new_primPlusNat3(Zero) → Succ(Succ(new_primPlusNat1))
new_primPlusNat3(Succ(ywz72000)) → Succ(Succ(new_primPlusNat4(ywz72000)))
new_primPlusNat4(Succ(ywz720000)) → Succ(Succ(new_primPlusNat5(ywz720000)))
new_primPlusNat4(Zero) → Succ(Succ(new_primPlusNat0(new_primPlusNat1)))
new_primPlusNat1 → Zero
new_primPlusNat0(ywz295) → Succ(Succ(ywz295))
new_primPlusNat5(Zero) → Succ(new_primPlusNat2(new_primPlusNat2(Succ(Succ(Zero)), Succ(Succ(Zero))), Succ(Zero)))
new_primPlusNat5(Succ(ywz7200000)) → Succ(Succ(new_primPlusNat2(new_primPlusNat2(new_primPlusNat2(Succ(Succ(Succ(ywz7200000))), Succ(Succ(Succ(ywz7200000)))), Succ(Succ(ywz7200000))), ywz7200000)))
new_esEs3(Succ(x0), Succ(x1))
new_lt(Pos(Zero), Pos(Zero))
new_primPlusNat4(Succ(x0))
new_mkVBalBranch3Size_r(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10)
new_primPlusNat0(x0)
new_primPlusNat2(Succ(x0), Zero)
new_primPlusNat3(Succ(x0))
new_esEs0
new_primMulNat(Zero)
new_lt(Pos(Zero), Neg(Succ(x0)))
new_lt(Neg(Zero), Pos(Succ(x0)))
new_lt(Pos(Succ(x0)), Pos(x1))
new_lt(Neg(Succ(x0)), Neg(x1))
new_lt(Neg(Zero), Pos(Zero))
new_lt(Pos(Zero), Neg(Zero))
new_primPlusNat5(Succ(x0))
new_esEs1
new_lt(Neg(Zero), Neg(Zero))
new_mkVBalBranch3Size_l(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10)
new_sr(Pos(x0))
new_esEs3(Zero, Succ(x0))
new_primPlusNat3(Zero)
new_lt(Neg(Zero), Neg(Succ(x0)))
new_primMulNat(Succ(x0))
new_primPlusNat1
new_sr(Neg(x0))
new_primPlusNat2(Zero, Zero)
new_lt(Pos(Zero), Pos(Succ(x0)))
new_primPlusNat5(Zero)
new_esEs3(Succ(x0), Zero)
new_esEs3(Zero, Zero)
new_primPlusNat4(Zero)
new_esEs2
new_sizeFM(Branch(x0, x1, x2, x3, x4), x5)
new_primMulNat0(x0)
new_sizeFM(EmptyFM, x0)
new_lt(Pos(Succ(x0)), Neg(x1))
new_lt(Neg(Succ(x0)), Pos(x1))
new_primPlusNat2(Succ(x0), Succ(x1))
new_primPlusNat2(Zero, Succ(x0))
From the DPs we obtained the following set of size-change graphs:
↳ HASKELL
↳ LR
↳ HASKELL
↳ CR
↳ HASKELL
↳ IFR
↳ HASKELL
↳ BR
↳ HASKELL
↳ COR
↳ HASKELL
↳ LetRed
↳ HASKELL
↳ NumRed
↳ HASKELL
↳ Narrow
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
new_splitLT3(Pos(Zero), ywz41, ywz42, ywz43, Branch(ywz440, ywz441, ywz442, ywz443, ywz444), Pos(Succ(ywz5000)), ba) → new_splitLT3(ywz440, ywz441, ywz442, ywz443, ywz444, Pos(Succ(ywz5000)), ba)
new_splitLT3(Neg(Succ(ywz4000)), ywz41, ywz42, ywz43, ywz44, Neg(Succ(ywz5000)), ba) → new_splitLT20(ywz4000, ywz41, ywz42, ywz43, ywz44, ywz5000, ywz4000, ywz5000, ba)
new_splitLT3(Pos(Succ(ywz4000)), ywz41, ywz42, ywz43, ywz44, Pos(Succ(ywz5000)), ba) → new_splitLT2(ywz4000, ywz41, ywz42, ywz43, ywz44, ywz5000, ywz5000, ywz4000, ba)
new_splitLT10(ywz1848, ywz1849, ywz1850, ywz1851, ywz1852, ywz1853, Succ(ywz18540), Zero, bd) → new_splitLT4(ywz1852, ywz1853, bd)
new_splitLT3(Pos(ywz400), ywz41, ywz42, Branch(ywz430, ywz431, ywz432, ywz433, ywz434), ywz44, Neg(Succ(ywz5000)), ba) → new_splitLT3(ywz430, ywz431, ywz432, ywz433, ywz434, Neg(Succ(ywz5000)), ba)
new_splitLT22(ywz447, ywz448, ywz449, ywz450, ywz451, ywz452, bc) → new_splitLT10(ywz447, ywz448, ywz449, ywz450, ywz451, ywz452, Succ(ywz447), Succ(ywz452), bc)
new_splitLT2(ywz438, ywz439, ywz440, ywz441, ywz442, ywz443, Zero, Succ(ywz4450), bb) → new_splitLT(ywz441, ywz443, bb)
new_splitLT2(ywz438, ywz439, ywz440, ywz441, ywz442, ywz443, Zero, Zero, bb) → new_splitLT21(ywz438, ywz439, ywz440, ywz441, ywz442, ywz443, bb)
new_splitLT3(Neg(Zero), ywz41, ywz42, ywz43, ywz44, Neg(Succ(ywz5000)), ba) → new_splitLT4(ywz43, ywz5000, ba)
new_splitLT20(ywz447, ywz448, ywz449, ywz450, ywz451, ywz452, Zero, Zero, bc) → new_splitLT22(ywz447, ywz448, ywz449, ywz450, ywz451, ywz452, bc)
new_splitLT1(ywz1839, ywz1840, ywz1841, ywz1842, ywz1843, ywz1844, Succ(ywz18450), Zero, h) → new_splitLT(ywz1843, ywz1844, h)
new_splitLT20(ywz447, ywz448, ywz449, ywz450, ywz451, ywz452, Succ(ywz4530), Succ(ywz4540), bc) → new_splitLT20(ywz447, ywz448, ywz449, ywz450, ywz451, ywz452, ywz4530, ywz4540, bc)
new_splitLT10(ywz1848, ywz1849, ywz1850, ywz1851, ywz1852, ywz1853, Succ(ywz18540), Succ(ywz18550), bd) → new_splitLT10(ywz1848, ywz1849, ywz1850, ywz1851, ywz1852, ywz1853, ywz18540, ywz18550, bd)
new_splitLT3(Neg(Succ(ywz4000)), ywz41, ywz42, ywz43, ywz44, Neg(Zero), ba) → new_splitLT5(ywz44, ba)
new_splitLT4(Branch(ywz430, ywz431, ywz432, ywz433, ywz434), ywz5000, ba) → new_splitLT3(ywz430, ywz431, ywz432, ywz433, ywz434, Neg(Succ(ywz5000)), ba)
new_splitLT3(Pos(Succ(ywz4000)), ywz41, ywz42, Branch(ywz430, ywz431, ywz432, ywz433, ywz434), ywz44, Pos(Zero), ba) → new_splitLT3(ywz430, ywz431, ywz432, ywz433, ywz434, Pos(Zero), ba)
new_splitLT(Branch(ywz440, ywz441, ywz442, ywz443, ywz444), ywz5000, ba) → new_splitLT3(ywz440, ywz441, ywz442, ywz443, ywz444, Pos(Succ(ywz5000)), ba)
new_splitLT0(Branch(ywz430, ywz431, ywz432, ywz433, ywz434), ba) → new_splitLT3(ywz430, ywz431, ywz432, ywz433, ywz434, Pos(Zero), ba)
new_splitLT5(Branch(ywz430, ywz431, ywz432, ywz433, ywz434), ba) → new_splitLT3(ywz430, ywz431, ywz432, ywz433, ywz434, Neg(Zero), ba)
new_splitLT3(Neg(ywz400), ywz41, ywz42, EmptyFM, ywz44, Pos(Succ(ywz5000)), ba) → new_splitLT(ywz44, ywz5000, ba)
new_splitLT1(ywz1839, ywz1840, ywz1841, ywz1842, ywz1843, ywz1844, Succ(ywz18450), Succ(ywz18460), h) → new_splitLT1(ywz1839, ywz1840, ywz1841, ywz1842, ywz1843, ywz1844, ywz18450, ywz18460, h)
new_splitLT20(ywz447, ywz448, ywz449, ywz450, ywz451, ywz452, Zero, Succ(ywz4540), bc) → new_splitLT4(ywz450, ywz452, bc)
new_splitLT2(ywz438, ywz439, ywz440, ywz441, ywz442, ywz443, Succ(ywz4440), Succ(ywz4450), bb) → new_splitLT2(ywz438, ywz439, ywz440, ywz441, ywz442, ywz443, ywz4440, ywz4450, bb)
new_splitLT3(Neg(Succ(ywz4000)), ywz41, ywz42, ywz43, ywz44, Pos(Zero), ba) → new_splitLT0(ywz44, ba)
new_splitLT3(Neg(ywz400), ywz41, ywz42, Branch(ywz430, ywz431, ywz432, ywz433, ywz434), Branch(ywz440, ywz441, ywz442, ywz443, ywz444), Pos(Succ(ywz5000)), ba) → new_splitLT3(ywz440, ywz441, ywz442, ywz443, ywz444, Pos(Succ(ywz5000)), ba)
new_splitLT2(ywz438, ywz439, ywz440, ywz441, ywz442, ywz443, Succ(ywz4440), Zero, bb) → new_splitLT1(ywz438, ywz439, ywz440, ywz441, ywz442, ywz443, Succ(ywz443), Succ(ywz438), bb)
new_splitLT20(ywz447, ywz448, ywz449, ywz450, ywz451, ywz452, Succ(ywz4530), Zero, bc) → new_splitLT10(ywz447, ywz448, ywz449, ywz450, ywz451, ywz452, Succ(ywz447), Succ(ywz452), bc)
new_splitLT21(ywz438, ywz439, ywz440, ywz441, ywz442, ywz443, bb) → new_splitLT1(ywz438, ywz439, ywz440, ywz441, ywz442, ywz443, Succ(ywz443), Succ(ywz438), bb)
new_splitLT3(Pos(Succ(ywz4000)), ywz41, ywz42, Branch(ywz430, ywz431, ywz432, ywz433, ywz434), ywz44, Neg(Zero), ba) → new_splitLT3(ywz430, ywz431, ywz432, ywz433, ywz434, Neg(Zero), ba)
↳ HASKELL
↳ LR
↳ HASKELL
↳ CR
↳ HASKELL
↳ IFR
↳ HASKELL
↳ BR
↳ HASKELL
↳ COR
↳ HASKELL
↳ LetRed
↳ HASKELL
↳ NumRed
↳ HASKELL
↳ Narrow
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDPSizeChangeProof
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
new_splitLT3(Pos(Succ(ywz4000)), ywz41, ywz42, Branch(ywz430, ywz431, ywz432, ywz433, ywz434), ywz44, Pos(Zero), ba) → new_splitLT3(ywz430, ywz431, ywz432, ywz433, ywz434, Pos(Zero), ba)
new_splitLT3(Neg(Succ(ywz4000)), ywz41, ywz42, ywz43, ywz44, Pos(Zero), ba) → new_splitLT0(ywz44, ba)
new_splitLT0(Branch(ywz430, ywz431, ywz432, ywz433, ywz434), ba) → new_splitLT3(ywz430, ywz431, ywz432, ywz433, ywz434, Pos(Zero), ba)
From the DPs we obtained the following set of size-change graphs:
↳ HASKELL
↳ LR
↳ HASKELL
↳ CR
↳ HASKELL
↳ IFR
↳ HASKELL
↳ BR
↳ HASKELL
↳ COR
↳ HASKELL
↳ LetRed
↳ HASKELL
↳ NumRed
↳ HASKELL
↳ Narrow
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDPSizeChangeProof
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
new_splitLT3(Neg(Succ(ywz4000)), ywz41, ywz42, ywz43, ywz44, Neg(Zero), ba) → new_splitLT5(ywz44, ba)
new_splitLT5(Branch(ywz430, ywz431, ywz432, ywz433, ywz434), ba) → new_splitLT3(ywz430, ywz431, ywz432, ywz433, ywz434, Neg(Zero), ba)
new_splitLT3(Pos(Succ(ywz4000)), ywz41, ywz42, Branch(ywz430, ywz431, ywz432, ywz433, ywz434), ywz44, Neg(Zero), ba) → new_splitLT3(ywz430, ywz431, ywz432, ywz433, ywz434, Neg(Zero), ba)
From the DPs we obtained the following set of size-change graphs:
↳ HASKELL
↳ LR
↳ HASKELL
↳ CR
↳ HASKELL
↳ IFR
↳ HASKELL
↳ BR
↳ HASKELL
↳ COR
↳ HASKELL
↳ LetRed
↳ HASKELL
↳ NumRed
↳ HASKELL
↳ Narrow
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDPSizeChangeProof
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
new_splitLT10(ywz1848, ywz1849, ywz1850, ywz1851, ywz1852, ywz1853, Succ(ywz18540), Succ(ywz18550), bd) → new_splitLT10(ywz1848, ywz1849, ywz1850, ywz1851, ywz1852, ywz1853, ywz18540, ywz18550, bd)
new_splitLT4(Branch(ywz430, ywz431, ywz432, ywz433, ywz434), ywz5000, ba) → new_splitLT3(ywz430, ywz431, ywz432, ywz433, ywz434, Neg(Succ(ywz5000)), ba)
new_splitLT3(Neg(Zero), ywz41, ywz42, ywz43, ywz44, Neg(Succ(ywz5000)), ba) → new_splitLT4(ywz43, ywz5000, ba)
new_splitLT3(Neg(Succ(ywz4000)), ywz41, ywz42, ywz43, ywz44, Neg(Succ(ywz5000)), ba) → new_splitLT20(ywz4000, ywz41, ywz42, ywz43, ywz44, ywz5000, ywz4000, ywz5000, ba)
new_splitLT10(ywz1848, ywz1849, ywz1850, ywz1851, ywz1852, ywz1853, Succ(ywz18540), Zero, bd) → new_splitLT4(ywz1852, ywz1853, bd)
new_splitLT20(ywz447, ywz448, ywz449, ywz450, ywz451, ywz452, Zero, Zero, bc) → new_splitLT22(ywz447, ywz448, ywz449, ywz450, ywz451, ywz452, bc)
new_splitLT3(Pos(ywz400), ywz41, ywz42, Branch(ywz430, ywz431, ywz432, ywz433, ywz434), ywz44, Neg(Succ(ywz5000)), ba) → new_splitLT3(ywz430, ywz431, ywz432, ywz433, ywz434, Neg(Succ(ywz5000)), ba)
new_splitLT22(ywz447, ywz448, ywz449, ywz450, ywz451, ywz452, bc) → new_splitLT10(ywz447, ywz448, ywz449, ywz450, ywz451, ywz452, Succ(ywz447), Succ(ywz452), bc)
new_splitLT20(ywz447, ywz448, ywz449, ywz450, ywz451, ywz452, Succ(ywz4530), Succ(ywz4540), bc) → new_splitLT20(ywz447, ywz448, ywz449, ywz450, ywz451, ywz452, ywz4530, ywz4540, bc)
new_splitLT20(ywz447, ywz448, ywz449, ywz450, ywz451, ywz452, Succ(ywz4530), Zero, bc) → new_splitLT10(ywz447, ywz448, ywz449, ywz450, ywz451, ywz452, Succ(ywz447), Succ(ywz452), bc)
new_splitLT20(ywz447, ywz448, ywz449, ywz450, ywz451, ywz452, Zero, Succ(ywz4540), bc) → new_splitLT4(ywz450, ywz452, bc)
From the DPs we obtained the following set of size-change graphs:
↳ HASKELL
↳ LR
↳ HASKELL
↳ CR
↳ HASKELL
↳ IFR
↳ HASKELL
↳ BR
↳ HASKELL
↳ COR
↳ HASKELL
↳ LetRed
↳ HASKELL
↳ NumRed
↳ HASKELL
↳ Narrow
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDPSizeChangeProof
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
new_splitLT2(ywz438, ywz439, ywz440, ywz441, ywz442, ywz443, Succ(ywz4440), Succ(ywz4450), bb) → new_splitLT2(ywz438, ywz439, ywz440, ywz441, ywz442, ywz443, ywz4440, ywz4450, bb)
new_splitLT2(ywz438, ywz439, ywz440, ywz441, ywz442, ywz443, Zero, Zero, bb) → new_splitLT21(ywz438, ywz439, ywz440, ywz441, ywz442, ywz443, bb)
new_splitLT3(Pos(Zero), ywz41, ywz42, ywz43, Branch(ywz440, ywz441, ywz442, ywz443, ywz444), Pos(Succ(ywz5000)), ba) → new_splitLT3(ywz440, ywz441, ywz442, ywz443, ywz444, Pos(Succ(ywz5000)), ba)
new_splitLT3(Neg(ywz400), ywz41, ywz42, Branch(ywz430, ywz431, ywz432, ywz433, ywz434), Branch(ywz440, ywz441, ywz442, ywz443, ywz444), Pos(Succ(ywz5000)), ba) → new_splitLT3(ywz440, ywz441, ywz442, ywz443, ywz444, Pos(Succ(ywz5000)), ba)
new_splitLT(Branch(ywz440, ywz441, ywz442, ywz443, ywz444), ywz5000, ba) → new_splitLT3(ywz440, ywz441, ywz442, ywz443, ywz444, Pos(Succ(ywz5000)), ba)
new_splitLT3(Pos(Succ(ywz4000)), ywz41, ywz42, ywz43, ywz44, Pos(Succ(ywz5000)), ba) → new_splitLT2(ywz4000, ywz41, ywz42, ywz43, ywz44, ywz5000, ywz5000, ywz4000, ba)
new_splitLT2(ywz438, ywz439, ywz440, ywz441, ywz442, ywz443, Succ(ywz4440), Zero, bb) → new_splitLT1(ywz438, ywz439, ywz440, ywz441, ywz442, ywz443, Succ(ywz443), Succ(ywz438), bb)
new_splitLT1(ywz1839, ywz1840, ywz1841, ywz1842, ywz1843, ywz1844, Succ(ywz18450), Zero, h) → new_splitLT(ywz1843, ywz1844, h)
new_splitLT2(ywz438, ywz439, ywz440, ywz441, ywz442, ywz443, Zero, Succ(ywz4450), bb) → new_splitLT(ywz441, ywz443, bb)
new_splitLT1(ywz1839, ywz1840, ywz1841, ywz1842, ywz1843, ywz1844, Succ(ywz18450), Succ(ywz18460), h) → new_splitLT1(ywz1839, ywz1840, ywz1841, ywz1842, ywz1843, ywz1844, ywz18450, ywz18460, h)
new_splitLT3(Neg(ywz400), ywz41, ywz42, EmptyFM, ywz44, Pos(Succ(ywz5000)), ba) → new_splitLT(ywz44, ywz5000, ba)
new_splitLT21(ywz438, ywz439, ywz440, ywz441, ywz442, ywz443, bb) → new_splitLT1(ywz438, ywz439, ywz440, ywz441, ywz442, ywz443, Succ(ywz443), Succ(ywz438), bb)
From the DPs we obtained the following set of size-change graphs:
↳ HASKELL
↳ LR
↳ HASKELL
↳ CR
↳ HASKELL
↳ IFR
↳ HASKELL
↳ BR
↳ HASKELL
↳ COR
↳ HASKELL
↳ LetRed
↳ HASKELL
↳ NumRed
↳ HASKELL
↳ Narrow
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
new_splitGT20(ywz429, ywz430, ywz431, ywz432, ywz433, ywz434, Zero, Zero, bc) → new_splitGT22(ywz429, ywz430, ywz431, ywz432, ywz433, ywz434, bc)
new_splitGT20(ywz429, ywz430, ywz431, ywz432, ywz433, ywz434, Zero, Succ(ywz4360), bc) → new_splitGT11(ywz429, ywz430, ywz431, ywz432, ywz433, ywz434, new_lt(Neg(Succ(ywz434)), Neg(Succ(ywz429))), bc)
new_splitGT1(Branch(ywz430, ywz431, ywz432, ywz433, ywz434), ywz5000, h) → new_splitGT3(ywz430, ywz431, ywz432, ywz433, ywz434, Neg(Succ(ywz5000)), h)
new_splitGT20(ywz429, ywz430, ywz431, ywz432, ywz433, ywz434, Succ(ywz4350), Zero, bc) → new_splitGT1(ywz433, ywz434, bc)
new_splitGT3(Pos(ywz400), ywz41, ywz42, Branch(ywz430, ywz431, ywz432, ywz433, ywz434), ywz44, Neg(Succ(ywz5000)), h) → new_splitGT3(ywz430, ywz431, ywz432, ywz433, ywz434, Neg(Succ(ywz5000)), h)
new_splitGT3(Neg(Succ(ywz4000)), ywz41, ywz42, ywz43, Branch(ywz440, ywz441, ywz442, ywz443, ywz444), Neg(Zero), h) → new_splitGT3(ywz440, ywz441, ywz442, ywz443, ywz444, Neg(Zero), h)
new_splitGT3(Pos(Succ(ywz4000)), ywz41, ywz42, ywz43, ywz44, Pos(Zero), h) → new_splitGT0(ywz43, h)
new_splitGT3(Pos(Zero), ywz41, ywz42, ywz43, ywz44, Pos(Succ(ywz5000)), h) → new_splitGT(ywz44, ywz5000, h)
new_splitGT2(ywz420, ywz421, ywz422, ywz423, ywz424, ywz425, Succ(ywz4260), Succ(ywz4270), ba) → new_splitGT2(ywz420, ywz421, ywz422, ywz423, ywz424, ywz425, ywz4260, ywz4270, ba)
new_splitGT3(Neg(Succ(ywz4000)), ywz41, ywz42, ywz43, ywz44, Neg(Succ(ywz5000)), h) → new_splitGT20(ywz4000, ywz41, ywz42, ywz43, ywz44, ywz5000, ywz4000, ywz5000, h)
new_splitGT3(Neg(ywz400), ywz41, ywz42, ywz43, Branch(ywz440, ywz441, ywz442, ywz443, ywz444), Pos(Succ(ywz5000)), h) → new_splitGT3(ywz440, ywz441, ywz442, ywz443, ywz444, Pos(Succ(ywz5000)), h)
new_splitGT2(ywz420, ywz421, ywz422, ywz423, ywz424, ywz425, Succ(ywz4260), Zero, ba) → new_splitGT(ywz424, ywz425, ba)
new_splitGT10(ywz1819, ywz1820, ywz1821, ywz1822, ywz1823, ywz1824, True, bb) → new_splitGT(ywz1822, ywz1824, bb)
new_splitGT0(Branch(ywz440, ywz441, ywz442, ywz443, ywz444), h) → new_splitGT3(ywz440, ywz441, ywz442, ywz443, ywz444, Pos(Zero), h)
new_splitGT(Branch(ywz440, ywz441, ywz442, ywz443, ywz444), ywz5000, h) → new_splitGT3(ywz440, ywz441, ywz442, ywz443, ywz444, Pos(Succ(ywz5000)), h)
new_splitGT20(ywz429, ywz430, ywz431, ywz432, ywz433, ywz434, Succ(ywz4350), Succ(ywz4360), bc) → new_splitGT20(ywz429, ywz430, ywz431, ywz432, ywz433, ywz434, ywz4350, ywz4360, bc)
new_splitGT3(Neg(Succ(ywz4000)), ywz41, ywz42, ywz43, Branch(ywz440, ywz441, ywz442, ywz443, ywz444), Pos(Zero), h) → new_splitGT3(ywz440, ywz441, ywz442, ywz443, ywz444, Pos(Zero), h)
new_splitGT3(Pos(Succ(ywz4000)), ywz41, ywz42, ywz43, ywz44, Neg(Zero), h) → new_splitGT4(ywz43, h)
new_splitGT2(ywz420, ywz421, ywz422, ywz423, ywz424, ywz425, Zero, Zero, ba) → new_splitGT21(ywz420, ywz421, ywz422, ywz423, ywz424, ywz425, ba)
new_splitGT21(ywz420, ywz421, ywz422, ywz423, ywz424, ywz425, ba) → new_splitGT10(ywz420, ywz421, ywz422, ywz423, ywz424, ywz425, new_lt(Pos(Succ(ywz425)), Pos(Succ(ywz420))), ba)
new_splitGT22(ywz429, ywz430, ywz431, ywz432, ywz433, ywz434, bc) → new_splitGT11(ywz429, ywz430, ywz431, ywz432, ywz433, ywz434, new_lt(Neg(Succ(ywz434)), Neg(Succ(ywz429))), bc)
new_splitGT3(Pos(Succ(ywz4000)), ywz41, ywz42, ywz43, ywz44, Pos(Succ(ywz5000)), h) → new_splitGT2(ywz4000, ywz41, ywz42, ywz43, ywz44, ywz5000, ywz5000, ywz4000, h)
new_splitGT4(Branch(ywz440, ywz441, ywz442, ywz443, ywz444), h) → new_splitGT3(ywz440, ywz441, ywz442, ywz443, ywz444, Neg(Zero), h)
new_splitGT3(Neg(Zero), ywz41, ywz42, ywz43, ywz44, Neg(Succ(ywz5000)), h) → new_splitGT1(ywz43, ywz5000, h)
new_splitGT2(ywz420, ywz421, ywz422, ywz423, ywz424, ywz425, Zero, Succ(ywz4270), ba) → new_splitGT10(ywz420, ywz421, ywz422, ywz423, ywz424, ywz425, new_lt(Pos(Succ(ywz425)), Pos(Succ(ywz420))), ba)
new_splitGT11(ywz1829, ywz1830, ywz1831, ywz1832, ywz1833, ywz1834, True, bd) → new_splitGT1(ywz1832, ywz1834, bd)
new_lt(Pos(Zero), Neg(Succ(ywz83200))) → new_esEs2
new_lt(Neg(Zero), Pos(Succ(ywz83200))) → new_esEs1
new_lt(Pos(Zero), Neg(Zero)) → new_esEs0
new_lt(Neg(Zero), Pos(Zero)) → new_esEs0
new_lt(Neg(Zero), Neg(Zero)) → new_esEs0
new_lt(Pos(Succ(ywz83700)), Pos(ywz8320)) → new_esEs3(Succ(ywz83700), ywz8320)
new_lt(Pos(Zero), Pos(Succ(ywz83200))) → new_esEs3(Zero, Succ(ywz83200))
new_lt(Neg(Succ(ywz83700)), Neg(ywz8320)) → new_esEs3(ywz8320, Succ(ywz83700))
new_esEs3(Zero, Zero) → new_esEs0
new_esEs1 → True
new_esEs0 → False
new_esEs3(Succ(ywz1055000), Zero) → new_esEs2
new_esEs3(Succ(ywz1055000), Succ(ywz104800)) → new_esEs3(ywz1055000, ywz104800)
new_lt(Pos(Zero), Pos(Zero)) → new_esEs0
new_lt(Pos(Succ(ywz83700)), Neg(ywz8320)) → new_esEs2
new_esEs2 → False
new_esEs3(Zero, Succ(ywz104800)) → new_esEs1
new_lt(Neg(Zero), Neg(Succ(ywz83200))) → new_esEs3(Succ(ywz83200), Zero)
new_lt(Neg(Succ(ywz83700)), Pos(ywz8320)) → new_esEs1
new_esEs3(Succ(x0), Succ(x1))
new_esEs3(Zero, Succ(x0))
new_lt(Neg(Zero), Neg(Succ(x0)))
new_lt(Pos(Zero), Pos(Zero))
new_esEs0
new_lt(Pos(Zero), Pos(Succ(x0)))
new_lt(Neg(Zero), Pos(Succ(x0)))
new_lt(Pos(Zero), Neg(Succ(x0)))
new_esEs3(Succ(x0), Zero)
new_lt(Pos(Succ(x0)), Pos(x1))
new_esEs3(Zero, Zero)
new_lt(Neg(Succ(x0)), Neg(x1))
new_esEs2
new_lt(Neg(Zero), Pos(Zero))
new_lt(Pos(Zero), Neg(Zero))
new_lt(Neg(Succ(x0)), Pos(x1))
new_lt(Pos(Succ(x0)), Neg(x1))
new_esEs1
new_lt(Neg(Zero), Neg(Zero))
↳ HASKELL
↳ LR
↳ HASKELL
↳ CR
↳ HASKELL
↳ IFR
↳ HASKELL
↳ BR
↳ HASKELL
↳ COR
↳ HASKELL
↳ LetRed
↳ HASKELL
↳ NumRed
↳ HASKELL
↳ Narrow
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
new_splitGT21(ywz420, ywz421, ywz422, ywz423, ywz424, ywz425, ba) → new_splitGT10(ywz420, ywz421, ywz422, ywz423, ywz424, ywz425, new_lt(Pos(Succ(ywz425)), Pos(Succ(ywz420))), ba)
new_splitGT10(ywz1819, ywz1820, ywz1821, ywz1822, ywz1823, ywz1824, True, bb) → new_splitGT(ywz1822, ywz1824, bb)
new_splitGT3(Pos(Succ(ywz4000)), ywz41, ywz42, ywz43, ywz44, Pos(Succ(ywz5000)), h) → new_splitGT2(ywz4000, ywz41, ywz42, ywz43, ywz44, ywz5000, ywz5000, ywz4000, h)
new_splitGT3(Pos(Zero), ywz41, ywz42, ywz43, ywz44, Pos(Succ(ywz5000)), h) → new_splitGT(ywz44, ywz5000, h)
new_splitGT2(ywz420, ywz421, ywz422, ywz423, ywz424, ywz425, Zero, Succ(ywz4270), ba) → new_splitGT10(ywz420, ywz421, ywz422, ywz423, ywz424, ywz425, new_lt(Pos(Succ(ywz425)), Pos(Succ(ywz420))), ba)
new_splitGT2(ywz420, ywz421, ywz422, ywz423, ywz424, ywz425, Zero, Zero, ba) → new_splitGT21(ywz420, ywz421, ywz422, ywz423, ywz424, ywz425, ba)
new_splitGT2(ywz420, ywz421, ywz422, ywz423, ywz424, ywz425, Succ(ywz4260), Succ(ywz4270), ba) → new_splitGT2(ywz420, ywz421, ywz422, ywz423, ywz424, ywz425, ywz4260, ywz4270, ba)
new_splitGT(Branch(ywz440, ywz441, ywz442, ywz443, ywz444), ywz5000, h) → new_splitGT3(ywz440, ywz441, ywz442, ywz443, ywz444, Pos(Succ(ywz5000)), h)
new_splitGT3(Neg(ywz400), ywz41, ywz42, ywz43, Branch(ywz440, ywz441, ywz442, ywz443, ywz444), Pos(Succ(ywz5000)), h) → new_splitGT3(ywz440, ywz441, ywz442, ywz443, ywz444, Pos(Succ(ywz5000)), h)
new_splitGT2(ywz420, ywz421, ywz422, ywz423, ywz424, ywz425, Succ(ywz4260), Zero, ba) → new_splitGT(ywz424, ywz425, ba)
new_lt(Pos(Zero), Neg(Succ(ywz83200))) → new_esEs2
new_lt(Neg(Zero), Pos(Succ(ywz83200))) → new_esEs1
new_lt(Pos(Zero), Neg(Zero)) → new_esEs0
new_lt(Neg(Zero), Pos(Zero)) → new_esEs0
new_lt(Neg(Zero), Neg(Zero)) → new_esEs0
new_lt(Pos(Succ(ywz83700)), Pos(ywz8320)) → new_esEs3(Succ(ywz83700), ywz8320)
new_lt(Pos(Zero), Pos(Succ(ywz83200))) → new_esEs3(Zero, Succ(ywz83200))
new_lt(Neg(Succ(ywz83700)), Neg(ywz8320)) → new_esEs3(ywz8320, Succ(ywz83700))
new_esEs3(Zero, Zero) → new_esEs0
new_esEs1 → True
new_esEs0 → False
new_esEs3(Succ(ywz1055000), Zero) → new_esEs2
new_esEs3(Succ(ywz1055000), Succ(ywz104800)) → new_esEs3(ywz1055000, ywz104800)
new_lt(Pos(Zero), Pos(Zero)) → new_esEs0
new_lt(Pos(Succ(ywz83700)), Neg(ywz8320)) → new_esEs2
new_esEs2 → False
new_esEs3(Zero, Succ(ywz104800)) → new_esEs1
new_lt(Neg(Zero), Neg(Succ(ywz83200))) → new_esEs3(Succ(ywz83200), Zero)
new_lt(Neg(Succ(ywz83700)), Pos(ywz8320)) → new_esEs1
new_esEs3(Succ(x0), Succ(x1))
new_esEs3(Zero, Succ(x0))
new_lt(Neg(Zero), Neg(Succ(x0)))
new_lt(Pos(Zero), Pos(Zero))
new_esEs0
new_lt(Pos(Zero), Pos(Succ(x0)))
new_lt(Neg(Zero), Pos(Succ(x0)))
new_lt(Pos(Zero), Neg(Succ(x0)))
new_esEs3(Succ(x0), Zero)
new_lt(Pos(Succ(x0)), Pos(x1))
new_esEs3(Zero, Zero)
new_lt(Neg(Succ(x0)), Neg(x1))
new_esEs2
new_lt(Neg(Zero), Pos(Zero))
new_lt(Pos(Zero), Neg(Zero))
new_lt(Neg(Succ(x0)), Pos(x1))
new_lt(Pos(Succ(x0)), Neg(x1))
new_esEs1
new_lt(Neg(Zero), Neg(Zero))
↳ HASKELL
↳ LR
↳ HASKELL
↳ CR
↳ HASKELL
↳ IFR
↳ HASKELL
↳ BR
↳ HASKELL
↳ COR
↳ HASKELL
↳ LetRed
↳ HASKELL
↳ NumRed
↳ HASKELL
↳ Narrow
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QDPSizeChangeProof
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
new_splitGT21(ywz420, ywz421, ywz422, ywz423, ywz424, ywz425, ba) → new_splitGT10(ywz420, ywz421, ywz422, ywz423, ywz424, ywz425, new_lt(Pos(Succ(ywz425)), Pos(Succ(ywz420))), ba)
new_splitGT10(ywz1819, ywz1820, ywz1821, ywz1822, ywz1823, ywz1824, True, bb) → new_splitGT(ywz1822, ywz1824, bb)
new_splitGT3(Pos(Succ(ywz4000)), ywz41, ywz42, ywz43, ywz44, Pos(Succ(ywz5000)), h) → new_splitGT2(ywz4000, ywz41, ywz42, ywz43, ywz44, ywz5000, ywz5000, ywz4000, h)
new_splitGT3(Pos(Zero), ywz41, ywz42, ywz43, ywz44, Pos(Succ(ywz5000)), h) → new_splitGT(ywz44, ywz5000, h)
new_splitGT2(ywz420, ywz421, ywz422, ywz423, ywz424, ywz425, Zero, Succ(ywz4270), ba) → new_splitGT10(ywz420, ywz421, ywz422, ywz423, ywz424, ywz425, new_lt(Pos(Succ(ywz425)), Pos(Succ(ywz420))), ba)
new_splitGT2(ywz420, ywz421, ywz422, ywz423, ywz424, ywz425, Zero, Zero, ba) → new_splitGT21(ywz420, ywz421, ywz422, ywz423, ywz424, ywz425, ba)
new_splitGT2(ywz420, ywz421, ywz422, ywz423, ywz424, ywz425, Succ(ywz4260), Succ(ywz4270), ba) → new_splitGT2(ywz420, ywz421, ywz422, ywz423, ywz424, ywz425, ywz4260, ywz4270, ba)
new_splitGT(Branch(ywz440, ywz441, ywz442, ywz443, ywz444), ywz5000, h) → new_splitGT3(ywz440, ywz441, ywz442, ywz443, ywz444, Pos(Succ(ywz5000)), h)
new_splitGT3(Neg(ywz400), ywz41, ywz42, ywz43, Branch(ywz440, ywz441, ywz442, ywz443, ywz444), Pos(Succ(ywz5000)), h) → new_splitGT3(ywz440, ywz441, ywz442, ywz443, ywz444, Pos(Succ(ywz5000)), h)
new_splitGT2(ywz420, ywz421, ywz422, ywz423, ywz424, ywz425, Succ(ywz4260), Zero, ba) → new_splitGT(ywz424, ywz425, ba)
new_lt(Pos(Succ(ywz83700)), Pos(ywz8320)) → new_esEs3(Succ(ywz83700), ywz8320)
new_esEs3(Succ(ywz1055000), Zero) → new_esEs2
new_esEs3(Succ(ywz1055000), Succ(ywz104800)) → new_esEs3(ywz1055000, ywz104800)
new_esEs3(Zero, Zero) → new_esEs0
new_esEs3(Zero, Succ(ywz104800)) → new_esEs1
new_esEs1 → True
new_esEs0 → False
new_esEs2 → False
new_esEs3(Succ(x0), Succ(x1))
new_esEs3(Zero, Succ(x0))
new_lt(Neg(Zero), Neg(Succ(x0)))
new_lt(Pos(Zero), Pos(Zero))
new_esEs0
new_lt(Pos(Zero), Pos(Succ(x0)))
new_lt(Neg(Zero), Pos(Succ(x0)))
new_lt(Pos(Zero), Neg(Succ(x0)))
new_esEs3(Succ(x0), Zero)
new_lt(Pos(Succ(x0)), Pos(x1))
new_esEs3(Zero, Zero)
new_lt(Neg(Succ(x0)), Neg(x1))
new_esEs2
new_lt(Neg(Zero), Pos(Zero))
new_lt(Pos(Zero), Neg(Zero))
new_lt(Neg(Succ(x0)), Pos(x1))
new_lt(Pos(Succ(x0)), Neg(x1))
new_esEs1
new_lt(Neg(Zero), Neg(Zero))
From the DPs we obtained the following set of size-change graphs:
↳ HASKELL
↳ LR
↳ HASKELL
↳ CR
↳ HASKELL
↳ IFR
↳ HASKELL
↳ BR
↳ HASKELL
↳ COR
↳ HASKELL
↳ LetRed
↳ HASKELL
↳ NumRed
↳ HASKELL
↳ Narrow
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
new_splitGT3(Pos(Succ(ywz4000)), ywz41, ywz42, ywz43, ywz44, Pos(Zero), h) → new_splitGT0(ywz43, h)
new_splitGT0(Branch(ywz440, ywz441, ywz442, ywz443, ywz444), h) → new_splitGT3(ywz440, ywz441, ywz442, ywz443, ywz444, Pos(Zero), h)
new_splitGT3(Neg(Succ(ywz4000)), ywz41, ywz42, ywz43, Branch(ywz440, ywz441, ywz442, ywz443, ywz444), Pos(Zero), h) → new_splitGT3(ywz440, ywz441, ywz442, ywz443, ywz444, Pos(Zero), h)
new_lt(Pos(Zero), Neg(Succ(ywz83200))) → new_esEs2
new_lt(Neg(Zero), Pos(Succ(ywz83200))) → new_esEs1
new_lt(Pos(Zero), Neg(Zero)) → new_esEs0
new_lt(Neg(Zero), Pos(Zero)) → new_esEs0
new_lt(Neg(Zero), Neg(Zero)) → new_esEs0
new_lt(Pos(Succ(ywz83700)), Pos(ywz8320)) → new_esEs3(Succ(ywz83700), ywz8320)
new_lt(Pos(Zero), Pos(Succ(ywz83200))) → new_esEs3(Zero, Succ(ywz83200))
new_lt(Neg(Succ(ywz83700)), Neg(ywz8320)) → new_esEs3(ywz8320, Succ(ywz83700))
new_esEs3(Zero, Zero) → new_esEs0
new_esEs1 → True
new_esEs0 → False
new_esEs3(Succ(ywz1055000), Zero) → new_esEs2
new_esEs3(Succ(ywz1055000), Succ(ywz104800)) → new_esEs3(ywz1055000, ywz104800)
new_lt(Pos(Zero), Pos(Zero)) → new_esEs0
new_lt(Pos(Succ(ywz83700)), Neg(ywz8320)) → new_esEs2
new_esEs2 → False
new_esEs3(Zero, Succ(ywz104800)) → new_esEs1
new_lt(Neg(Zero), Neg(Succ(ywz83200))) → new_esEs3(Succ(ywz83200), Zero)
new_lt(Neg(Succ(ywz83700)), Pos(ywz8320)) → new_esEs1
new_esEs3(Succ(x0), Succ(x1))
new_esEs3(Zero, Succ(x0))
new_lt(Neg(Zero), Neg(Succ(x0)))
new_lt(Pos(Zero), Pos(Zero))
new_esEs0
new_lt(Pos(Zero), Pos(Succ(x0)))
new_lt(Neg(Zero), Pos(Succ(x0)))
new_lt(Pos(Zero), Neg(Succ(x0)))
new_esEs3(Succ(x0), Zero)
new_lt(Pos(Succ(x0)), Pos(x1))
new_esEs3(Zero, Zero)
new_lt(Neg(Succ(x0)), Neg(x1))
new_esEs2
new_lt(Neg(Zero), Pos(Zero))
new_lt(Pos(Zero), Neg(Zero))
new_lt(Neg(Succ(x0)), Pos(x1))
new_lt(Pos(Succ(x0)), Neg(x1))
new_esEs1
new_lt(Neg(Zero), Neg(Zero))
↳ HASKELL
↳ LR
↳ HASKELL
↳ CR
↳ HASKELL
↳ IFR
↳ HASKELL
↳ BR
↳ HASKELL
↳ COR
↳ HASKELL
↳ LetRed
↳ HASKELL
↳ NumRed
↳ HASKELL
↳ Narrow
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
new_splitGT3(Pos(Succ(ywz4000)), ywz41, ywz42, ywz43, ywz44, Pos(Zero), h) → new_splitGT0(ywz43, h)
new_splitGT0(Branch(ywz440, ywz441, ywz442, ywz443, ywz444), h) → new_splitGT3(ywz440, ywz441, ywz442, ywz443, ywz444, Pos(Zero), h)
new_splitGT3(Neg(Succ(ywz4000)), ywz41, ywz42, ywz43, Branch(ywz440, ywz441, ywz442, ywz443, ywz444), Pos(Zero), h) → new_splitGT3(ywz440, ywz441, ywz442, ywz443, ywz444, Pos(Zero), h)
new_esEs3(Succ(x0), Succ(x1))
new_esEs3(Zero, Succ(x0))
new_lt(Neg(Zero), Neg(Succ(x0)))
new_lt(Pos(Zero), Pos(Zero))
new_esEs0
new_lt(Pos(Zero), Pos(Succ(x0)))
new_lt(Neg(Zero), Pos(Succ(x0)))
new_lt(Pos(Zero), Neg(Succ(x0)))
new_esEs3(Succ(x0), Zero)
new_lt(Pos(Succ(x0)), Pos(x1))
new_esEs3(Zero, Zero)
new_lt(Neg(Succ(x0)), Neg(x1))
new_esEs2
new_lt(Neg(Zero), Pos(Zero))
new_lt(Pos(Zero), Neg(Zero))
new_lt(Neg(Succ(x0)), Pos(x1))
new_lt(Pos(Succ(x0)), Neg(x1))
new_esEs1
new_lt(Neg(Zero), Neg(Zero))
new_esEs3(Succ(x0), Succ(x1))
new_esEs3(Zero, Succ(x0))
new_lt(Neg(Zero), Neg(Succ(x0)))
new_lt(Pos(Zero), Pos(Zero))
new_esEs0
new_lt(Pos(Zero), Pos(Succ(x0)))
new_lt(Neg(Zero), Pos(Succ(x0)))
new_lt(Pos(Zero), Neg(Succ(x0)))
new_esEs3(Succ(x0), Zero)
new_lt(Pos(Succ(x0)), Pos(x1))
new_esEs3(Zero, Zero)
new_lt(Neg(Succ(x0)), Neg(x1))
new_esEs2
new_lt(Neg(Zero), Pos(Zero))
new_lt(Pos(Zero), Neg(Zero))
new_lt(Neg(Succ(x0)), Pos(x1))
new_lt(Pos(Succ(x0)), Neg(x1))
new_esEs1
new_lt(Neg(Zero), Neg(Zero))
↳ HASKELL
↳ LR
↳ HASKELL
↳ CR
↳ HASKELL
↳ IFR
↳ HASKELL
↳ BR
↳ HASKELL
↳ COR
↳ HASKELL
↳ LetRed
↳ HASKELL
↳ NumRed
↳ HASKELL
↳ Narrow
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ QDPSizeChangeProof
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
new_splitGT3(Pos(Succ(ywz4000)), ywz41, ywz42, ywz43, ywz44, Pos(Zero), h) → new_splitGT0(ywz43, h)
new_splitGT0(Branch(ywz440, ywz441, ywz442, ywz443, ywz444), h) → new_splitGT3(ywz440, ywz441, ywz442, ywz443, ywz444, Pos(Zero), h)
new_splitGT3(Neg(Succ(ywz4000)), ywz41, ywz42, ywz43, Branch(ywz440, ywz441, ywz442, ywz443, ywz444), Pos(Zero), h) → new_splitGT3(ywz440, ywz441, ywz442, ywz443, ywz444, Pos(Zero), h)
From the DPs we obtained the following set of size-change graphs:
↳ HASKELL
↳ LR
↳ HASKELL
↳ CR
↳ HASKELL
↳ IFR
↳ HASKELL
↳ BR
↳ HASKELL
↳ COR
↳ HASKELL
↳ LetRed
↳ HASKELL
↳ NumRed
↳ HASKELL
↳ Narrow
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
new_splitGT3(Neg(Succ(ywz4000)), ywz41, ywz42, ywz43, Branch(ywz440, ywz441, ywz442, ywz443, ywz444), Neg(Zero), h) → new_splitGT3(ywz440, ywz441, ywz442, ywz443, ywz444, Neg(Zero), h)
new_splitGT3(Pos(Succ(ywz4000)), ywz41, ywz42, ywz43, ywz44, Neg(Zero), h) → new_splitGT4(ywz43, h)
new_splitGT4(Branch(ywz440, ywz441, ywz442, ywz443, ywz444), h) → new_splitGT3(ywz440, ywz441, ywz442, ywz443, ywz444, Neg(Zero), h)
new_lt(Pos(Zero), Neg(Succ(ywz83200))) → new_esEs2
new_lt(Neg(Zero), Pos(Succ(ywz83200))) → new_esEs1
new_lt(Pos(Zero), Neg(Zero)) → new_esEs0
new_lt(Neg(Zero), Pos(Zero)) → new_esEs0
new_lt(Neg(Zero), Neg(Zero)) → new_esEs0
new_lt(Pos(Succ(ywz83700)), Pos(ywz8320)) → new_esEs3(Succ(ywz83700), ywz8320)
new_lt(Pos(Zero), Pos(Succ(ywz83200))) → new_esEs3(Zero, Succ(ywz83200))
new_lt(Neg(Succ(ywz83700)), Neg(ywz8320)) → new_esEs3(ywz8320, Succ(ywz83700))
new_esEs3(Zero, Zero) → new_esEs0
new_esEs1 → True
new_esEs0 → False
new_esEs3(Succ(ywz1055000), Zero) → new_esEs2
new_esEs3(Succ(ywz1055000), Succ(ywz104800)) → new_esEs3(ywz1055000, ywz104800)
new_lt(Pos(Zero), Pos(Zero)) → new_esEs0
new_lt(Pos(Succ(ywz83700)), Neg(ywz8320)) → new_esEs2
new_esEs2 → False
new_esEs3(Zero, Succ(ywz104800)) → new_esEs1
new_lt(Neg(Zero), Neg(Succ(ywz83200))) → new_esEs3(Succ(ywz83200), Zero)
new_lt(Neg(Succ(ywz83700)), Pos(ywz8320)) → new_esEs1
new_esEs3(Succ(x0), Succ(x1))
new_esEs3(Zero, Succ(x0))
new_lt(Neg(Zero), Neg(Succ(x0)))
new_lt(Pos(Zero), Pos(Zero))
new_esEs0
new_lt(Pos(Zero), Pos(Succ(x0)))
new_lt(Neg(Zero), Pos(Succ(x0)))
new_lt(Pos(Zero), Neg(Succ(x0)))
new_esEs3(Succ(x0), Zero)
new_lt(Pos(Succ(x0)), Pos(x1))
new_esEs3(Zero, Zero)
new_lt(Neg(Succ(x0)), Neg(x1))
new_esEs2
new_lt(Neg(Zero), Pos(Zero))
new_lt(Pos(Zero), Neg(Zero))
new_lt(Neg(Succ(x0)), Pos(x1))
new_lt(Pos(Succ(x0)), Neg(x1))
new_esEs1
new_lt(Neg(Zero), Neg(Zero))
↳ HASKELL
↳ LR
↳ HASKELL
↳ CR
↳ HASKELL
↳ IFR
↳ HASKELL
↳ BR
↳ HASKELL
↳ COR
↳ HASKELL
↳ LetRed
↳ HASKELL
↳ NumRed
↳ HASKELL
↳ Narrow
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
new_splitGT3(Neg(Succ(ywz4000)), ywz41, ywz42, ywz43, Branch(ywz440, ywz441, ywz442, ywz443, ywz444), Neg(Zero), h) → new_splitGT3(ywz440, ywz441, ywz442, ywz443, ywz444, Neg(Zero), h)
new_splitGT3(Pos(Succ(ywz4000)), ywz41, ywz42, ywz43, ywz44, Neg(Zero), h) → new_splitGT4(ywz43, h)
new_splitGT4(Branch(ywz440, ywz441, ywz442, ywz443, ywz444), h) → new_splitGT3(ywz440, ywz441, ywz442, ywz443, ywz444, Neg(Zero), h)
new_esEs3(Succ(x0), Succ(x1))
new_esEs3(Zero, Succ(x0))
new_lt(Neg(Zero), Neg(Succ(x0)))
new_lt(Pos(Zero), Pos(Zero))
new_esEs0
new_lt(Pos(Zero), Pos(Succ(x0)))
new_lt(Neg(Zero), Pos(Succ(x0)))
new_lt(Pos(Zero), Neg(Succ(x0)))
new_esEs3(Succ(x0), Zero)
new_lt(Pos(Succ(x0)), Pos(x1))
new_esEs3(Zero, Zero)
new_lt(Neg(Succ(x0)), Neg(x1))
new_esEs2
new_lt(Neg(Zero), Pos(Zero))
new_lt(Pos(Zero), Neg(Zero))
new_lt(Neg(Succ(x0)), Pos(x1))
new_lt(Pos(Succ(x0)), Neg(x1))
new_esEs1
new_lt(Neg(Zero), Neg(Zero))
new_esEs3(Succ(x0), Succ(x1))
new_esEs3(Zero, Succ(x0))
new_lt(Neg(Zero), Neg(Succ(x0)))
new_lt(Pos(Zero), Pos(Zero))
new_esEs0
new_lt(Pos(Zero), Pos(Succ(x0)))
new_lt(Neg(Zero), Pos(Succ(x0)))
new_lt(Pos(Zero), Neg(Succ(x0)))
new_esEs3(Succ(x0), Zero)
new_lt(Pos(Succ(x0)), Pos(x1))
new_esEs3(Zero, Zero)
new_lt(Neg(Succ(x0)), Neg(x1))
new_esEs2
new_lt(Neg(Zero), Pos(Zero))
new_lt(Pos(Zero), Neg(Zero))
new_lt(Neg(Succ(x0)), Pos(x1))
new_lt(Pos(Succ(x0)), Neg(x1))
new_esEs1
new_lt(Neg(Zero), Neg(Zero))
↳ HASKELL
↳ LR
↳ HASKELL
↳ CR
↳ HASKELL
↳ IFR
↳ HASKELL
↳ BR
↳ HASKELL
↳ COR
↳ HASKELL
↳ LetRed
↳ HASKELL
↳ NumRed
↳ HASKELL
↳ Narrow
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ QDPSizeChangeProof
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
new_splitGT3(Pos(Succ(ywz4000)), ywz41, ywz42, ywz43, ywz44, Neg(Zero), h) → new_splitGT4(ywz43, h)
new_splitGT3(Neg(Succ(ywz4000)), ywz41, ywz42, ywz43, Branch(ywz440, ywz441, ywz442, ywz443, ywz444), Neg(Zero), h) → new_splitGT3(ywz440, ywz441, ywz442, ywz443, ywz444, Neg(Zero), h)
new_splitGT4(Branch(ywz440, ywz441, ywz442, ywz443, ywz444), h) → new_splitGT3(ywz440, ywz441, ywz442, ywz443, ywz444, Neg(Zero), h)
From the DPs we obtained the following set of size-change graphs:
↳ HASKELL
↳ LR
↳ HASKELL
↳ CR
↳ HASKELL
↳ IFR
↳ HASKELL
↳ BR
↳ HASKELL
↳ COR
↳ HASKELL
↳ LetRed
↳ HASKELL
↳ NumRed
↳ HASKELL
↳ Narrow
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
new_splitGT20(ywz429, ywz430, ywz431, ywz432, ywz433, ywz434, Zero, Zero, bc) → new_splitGT22(ywz429, ywz430, ywz431, ywz432, ywz433, ywz434, bc)
new_splitGT20(ywz429, ywz430, ywz431, ywz432, ywz433, ywz434, Zero, Succ(ywz4360), bc) → new_splitGT11(ywz429, ywz430, ywz431, ywz432, ywz433, ywz434, new_lt(Neg(Succ(ywz434)), Neg(Succ(ywz429))), bc)
new_splitGT1(Branch(ywz430, ywz431, ywz432, ywz433, ywz434), ywz5000, h) → new_splitGT3(ywz430, ywz431, ywz432, ywz433, ywz434, Neg(Succ(ywz5000)), h)
new_splitGT20(ywz429, ywz430, ywz431, ywz432, ywz433, ywz434, Succ(ywz4350), Zero, bc) → new_splitGT1(ywz433, ywz434, bc)
new_splitGT3(Pos(ywz400), ywz41, ywz42, Branch(ywz430, ywz431, ywz432, ywz433, ywz434), ywz44, Neg(Succ(ywz5000)), h) → new_splitGT3(ywz430, ywz431, ywz432, ywz433, ywz434, Neg(Succ(ywz5000)), h)
new_splitGT22(ywz429, ywz430, ywz431, ywz432, ywz433, ywz434, bc) → new_splitGT11(ywz429, ywz430, ywz431, ywz432, ywz433, ywz434, new_lt(Neg(Succ(ywz434)), Neg(Succ(ywz429))), bc)
new_splitGT3(Neg(Zero), ywz41, ywz42, ywz43, ywz44, Neg(Succ(ywz5000)), h) → new_splitGT1(ywz43, ywz5000, h)
new_splitGT11(ywz1829, ywz1830, ywz1831, ywz1832, ywz1833, ywz1834, True, bd) → new_splitGT1(ywz1832, ywz1834, bd)
new_splitGT3(Neg(Succ(ywz4000)), ywz41, ywz42, ywz43, ywz44, Neg(Succ(ywz5000)), h) → new_splitGT20(ywz4000, ywz41, ywz42, ywz43, ywz44, ywz5000, ywz4000, ywz5000, h)
new_splitGT20(ywz429, ywz430, ywz431, ywz432, ywz433, ywz434, Succ(ywz4350), Succ(ywz4360), bc) → new_splitGT20(ywz429, ywz430, ywz431, ywz432, ywz433, ywz434, ywz4350, ywz4360, bc)
new_lt(Pos(Zero), Neg(Succ(ywz83200))) → new_esEs2
new_lt(Neg(Zero), Pos(Succ(ywz83200))) → new_esEs1
new_lt(Pos(Zero), Neg(Zero)) → new_esEs0
new_lt(Neg(Zero), Pos(Zero)) → new_esEs0
new_lt(Neg(Zero), Neg(Zero)) → new_esEs0
new_lt(Pos(Succ(ywz83700)), Pos(ywz8320)) → new_esEs3(Succ(ywz83700), ywz8320)
new_lt(Pos(Zero), Pos(Succ(ywz83200))) → new_esEs3(Zero, Succ(ywz83200))
new_lt(Neg(Succ(ywz83700)), Neg(ywz8320)) → new_esEs3(ywz8320, Succ(ywz83700))
new_esEs3(Zero, Zero) → new_esEs0
new_esEs1 → True
new_esEs0 → False
new_esEs3(Succ(ywz1055000), Zero) → new_esEs2
new_esEs3(Succ(ywz1055000), Succ(ywz104800)) → new_esEs3(ywz1055000, ywz104800)
new_lt(Pos(Zero), Pos(Zero)) → new_esEs0
new_lt(Pos(Succ(ywz83700)), Neg(ywz8320)) → new_esEs2
new_esEs2 → False
new_esEs3(Zero, Succ(ywz104800)) → new_esEs1
new_lt(Neg(Zero), Neg(Succ(ywz83200))) → new_esEs3(Succ(ywz83200), Zero)
new_lt(Neg(Succ(ywz83700)), Pos(ywz8320)) → new_esEs1
new_esEs3(Succ(x0), Succ(x1))
new_esEs3(Zero, Succ(x0))
new_lt(Neg(Zero), Neg(Succ(x0)))
new_lt(Pos(Zero), Pos(Zero))
new_esEs0
new_lt(Pos(Zero), Pos(Succ(x0)))
new_lt(Neg(Zero), Pos(Succ(x0)))
new_lt(Pos(Zero), Neg(Succ(x0)))
new_esEs3(Succ(x0), Zero)
new_lt(Pos(Succ(x0)), Pos(x1))
new_esEs3(Zero, Zero)
new_lt(Neg(Succ(x0)), Neg(x1))
new_esEs2
new_lt(Neg(Zero), Pos(Zero))
new_lt(Pos(Zero), Neg(Zero))
new_lt(Neg(Succ(x0)), Pos(x1))
new_lt(Pos(Succ(x0)), Neg(x1))
new_esEs1
new_lt(Neg(Zero), Neg(Zero))
↳ HASKELL
↳ LR
↳ HASKELL
↳ CR
↳ HASKELL
↳ IFR
↳ HASKELL
↳ BR
↳ HASKELL
↳ COR
↳ HASKELL
↳ LetRed
↳ HASKELL
↳ NumRed
↳ HASKELL
↳ Narrow
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QDPSizeChangeProof
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
new_splitGT20(ywz429, ywz430, ywz431, ywz432, ywz433, ywz434, Zero, Zero, bc) → new_splitGT22(ywz429, ywz430, ywz431, ywz432, ywz433, ywz434, bc)
new_splitGT20(ywz429, ywz430, ywz431, ywz432, ywz433, ywz434, Zero, Succ(ywz4360), bc) → new_splitGT11(ywz429, ywz430, ywz431, ywz432, ywz433, ywz434, new_lt(Neg(Succ(ywz434)), Neg(Succ(ywz429))), bc)
new_splitGT1(Branch(ywz430, ywz431, ywz432, ywz433, ywz434), ywz5000, h) → new_splitGT3(ywz430, ywz431, ywz432, ywz433, ywz434, Neg(Succ(ywz5000)), h)
new_splitGT20(ywz429, ywz430, ywz431, ywz432, ywz433, ywz434, Succ(ywz4350), Zero, bc) → new_splitGT1(ywz433, ywz434, bc)
new_splitGT3(Pos(ywz400), ywz41, ywz42, Branch(ywz430, ywz431, ywz432, ywz433, ywz434), ywz44, Neg(Succ(ywz5000)), h) → new_splitGT3(ywz430, ywz431, ywz432, ywz433, ywz434, Neg(Succ(ywz5000)), h)
new_splitGT22(ywz429, ywz430, ywz431, ywz432, ywz433, ywz434, bc) → new_splitGT11(ywz429, ywz430, ywz431, ywz432, ywz433, ywz434, new_lt(Neg(Succ(ywz434)), Neg(Succ(ywz429))), bc)
new_splitGT3(Neg(Zero), ywz41, ywz42, ywz43, ywz44, Neg(Succ(ywz5000)), h) → new_splitGT1(ywz43, ywz5000, h)
new_splitGT11(ywz1829, ywz1830, ywz1831, ywz1832, ywz1833, ywz1834, True, bd) → new_splitGT1(ywz1832, ywz1834, bd)
new_splitGT3(Neg(Succ(ywz4000)), ywz41, ywz42, ywz43, ywz44, Neg(Succ(ywz5000)), h) → new_splitGT20(ywz4000, ywz41, ywz42, ywz43, ywz44, ywz5000, ywz4000, ywz5000, h)
new_splitGT20(ywz429, ywz430, ywz431, ywz432, ywz433, ywz434, Succ(ywz4350), Succ(ywz4360), bc) → new_splitGT20(ywz429, ywz430, ywz431, ywz432, ywz433, ywz434, ywz4350, ywz4360, bc)
new_lt(Neg(Succ(ywz83700)), Neg(ywz8320)) → new_esEs3(ywz8320, Succ(ywz83700))
new_esEs3(Succ(ywz1055000), Succ(ywz104800)) → new_esEs3(ywz1055000, ywz104800)
new_esEs3(Zero, Succ(ywz104800)) → new_esEs1
new_esEs1 → True
new_esEs3(Zero, Zero) → new_esEs0
new_esEs3(Succ(ywz1055000), Zero) → new_esEs2
new_esEs2 → False
new_esEs0 → False
new_esEs3(Succ(x0), Succ(x1))
new_esEs3(Zero, Succ(x0))
new_lt(Neg(Zero), Neg(Succ(x0)))
new_lt(Pos(Zero), Pos(Zero))
new_esEs0
new_lt(Pos(Zero), Pos(Succ(x0)))
new_lt(Neg(Zero), Pos(Succ(x0)))
new_lt(Pos(Zero), Neg(Succ(x0)))
new_esEs3(Succ(x0), Zero)
new_lt(Pos(Succ(x0)), Pos(x1))
new_esEs3(Zero, Zero)
new_lt(Neg(Succ(x0)), Neg(x1))
new_esEs2
new_lt(Neg(Zero), Pos(Zero))
new_lt(Pos(Zero), Neg(Zero))
new_lt(Neg(Succ(x0)), Pos(x1))
new_lt(Pos(Succ(x0)), Neg(x1))
new_esEs1
new_lt(Neg(Zero), Neg(Zero))
From the DPs we obtained the following set of size-change graphs:
↳ HASKELL
↳ LR
↳ HASKELL
↳ CR
↳ HASKELL
↳ IFR
↳ HASKELL
↳ BR
↳ HASKELL
↳ COR
↳ HASKELL
↳ LetRed
↳ HASKELL
↳ NumRed
↳ HASKELL
↳ Narrow
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
new_plusFM_CNew_elt0(ywz2338, ywz2339, ywz2340, ywz2341, ywz2342, ywz2343, ywz2344, ywz2345, ywz2346, ywz2347, Branch(ywz23480, ywz23481, ywz23482, ywz23483, ywz23484), ywz2349, True, h) → new_plusFM_CNew_elt0(ywz2338, ywz2339, ywz2340, ywz2341, ywz2342, ywz2343, ywz2344, ywz23480, ywz23481, ywz23482, ywz23483, ywz23484, new_lt(Neg(Zero), ywz23480), h)
new_plusFM_CNew_elt00(ywz2338, ywz2339, ywz2340, ywz2341, ywz2342, ywz2343, ywz2344, Branch(ywz23480, ywz23481, ywz23482, ywz23483, ywz23484), h) → new_plusFM_CNew_elt0(ywz2338, ywz2339, ywz2340, ywz2341, ywz2342, ywz2343, ywz2344, ywz23480, ywz23481, ywz23482, ywz23483, ywz23484, new_lt(Neg(Zero), ywz23480), h)
new_plusFM_CNew_elt0(ywz2338, ywz2339, ywz2340, ywz2341, ywz2342, ywz2343, ywz2344, Neg(Succ(ywz234500)), ywz2346, ywz2347, ywz2348, ywz2349, False, h) → new_plusFM_CNew_elt00(ywz2338, ywz2339, ywz2340, ywz2341, ywz2342, ywz2343, ywz2344, ywz2349, h)
new_lt(Pos(Zero), Neg(Succ(ywz83200))) → new_esEs2
new_lt(Neg(Zero), Pos(Succ(ywz83200))) → new_esEs1
new_lt(Pos(Zero), Neg(Zero)) → new_esEs0
new_lt(Neg(Zero), Pos(Zero)) → new_esEs0
new_lt(Neg(Zero), Neg(Zero)) → new_esEs0
new_lt(Pos(Succ(ywz83700)), Pos(ywz8320)) → new_esEs3(Succ(ywz83700), ywz8320)
new_lt(Pos(Zero), Pos(Succ(ywz83200))) → new_esEs3(Zero, Succ(ywz83200))
new_lt(Neg(Succ(ywz83700)), Neg(ywz8320)) → new_esEs3(ywz8320, Succ(ywz83700))
new_esEs3(Zero, Zero) → new_esEs0
new_esEs1 → True
new_esEs0 → False
new_esEs3(Succ(ywz1055000), Zero) → new_esEs2
new_esEs3(Succ(ywz1055000), Succ(ywz104800)) → new_esEs3(ywz1055000, ywz104800)
new_lt(Pos(Zero), Pos(Zero)) → new_esEs0
new_lt(Pos(Succ(ywz83700)), Neg(ywz8320)) → new_esEs2
new_esEs2 → False
new_esEs3(Zero, Succ(ywz104800)) → new_esEs1
new_lt(Neg(Zero), Neg(Succ(ywz83200))) → new_esEs3(Succ(ywz83200), Zero)
new_lt(Neg(Succ(ywz83700)), Pos(ywz8320)) → new_esEs1
new_esEs3(Succ(x0), Succ(x1))
new_esEs3(Zero, Succ(x0))
new_lt(Neg(Zero), Neg(Succ(x0)))
new_lt(Pos(Zero), Pos(Zero))
new_esEs0
new_lt(Pos(Zero), Pos(Succ(x0)))
new_lt(Neg(Zero), Pos(Succ(x0)))
new_lt(Pos(Zero), Neg(Succ(x0)))
new_esEs3(Succ(x0), Zero)
new_lt(Pos(Succ(x0)), Pos(x1))
new_esEs3(Zero, Zero)
new_lt(Neg(Succ(x0)), Neg(x1))
new_esEs2
new_lt(Neg(Zero), Pos(Zero))
new_lt(Pos(Zero), Neg(Zero))
new_lt(Neg(Succ(x0)), Pos(x1))
new_lt(Pos(Succ(x0)), Neg(x1))
new_esEs1
new_lt(Neg(Zero), Neg(Zero))
↳ HASKELL
↳ LR
↳ HASKELL
↳ CR
↳ HASKELL
↳ IFR
↳ HASKELL
↳ BR
↳ HASKELL
↳ COR
↳ HASKELL
↳ LetRed
↳ HASKELL
↳ NumRed
↳ HASKELL
↳ Narrow
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QDPSizeChangeProof
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
new_plusFM_CNew_elt0(ywz2338, ywz2339, ywz2340, ywz2341, ywz2342, ywz2343, ywz2344, ywz2345, ywz2346, ywz2347, Branch(ywz23480, ywz23481, ywz23482, ywz23483, ywz23484), ywz2349, True, h) → new_plusFM_CNew_elt0(ywz2338, ywz2339, ywz2340, ywz2341, ywz2342, ywz2343, ywz2344, ywz23480, ywz23481, ywz23482, ywz23483, ywz23484, new_lt(Neg(Zero), ywz23480), h)
new_plusFM_CNew_elt00(ywz2338, ywz2339, ywz2340, ywz2341, ywz2342, ywz2343, ywz2344, Branch(ywz23480, ywz23481, ywz23482, ywz23483, ywz23484), h) → new_plusFM_CNew_elt0(ywz2338, ywz2339, ywz2340, ywz2341, ywz2342, ywz2343, ywz2344, ywz23480, ywz23481, ywz23482, ywz23483, ywz23484, new_lt(Neg(Zero), ywz23480), h)
new_plusFM_CNew_elt0(ywz2338, ywz2339, ywz2340, ywz2341, ywz2342, ywz2343, ywz2344, Neg(Succ(ywz234500)), ywz2346, ywz2347, ywz2348, ywz2349, False, h) → new_plusFM_CNew_elt00(ywz2338, ywz2339, ywz2340, ywz2341, ywz2342, ywz2343, ywz2344, ywz2349, h)
new_lt(Neg(Zero), Pos(Succ(ywz83200))) → new_esEs1
new_lt(Neg(Zero), Pos(Zero)) → new_esEs0
new_lt(Neg(Zero), Neg(Zero)) → new_esEs0
new_lt(Neg(Zero), Neg(Succ(ywz83200))) → new_esEs3(Succ(ywz83200), Zero)
new_esEs3(Succ(ywz1055000), Zero) → new_esEs2
new_esEs2 → False
new_esEs0 → False
new_esEs1 → True
new_esEs3(Succ(x0), Succ(x1))
new_esEs3(Zero, Succ(x0))
new_lt(Neg(Zero), Neg(Succ(x0)))
new_lt(Pos(Zero), Pos(Zero))
new_esEs0
new_lt(Pos(Zero), Pos(Succ(x0)))
new_lt(Neg(Zero), Pos(Succ(x0)))
new_lt(Pos(Zero), Neg(Succ(x0)))
new_esEs3(Succ(x0), Zero)
new_lt(Pos(Succ(x0)), Pos(x1))
new_esEs3(Zero, Zero)
new_lt(Neg(Succ(x0)), Neg(x1))
new_esEs2
new_lt(Neg(Zero), Pos(Zero))
new_lt(Pos(Zero), Neg(Zero))
new_lt(Neg(Succ(x0)), Pos(x1))
new_lt(Pos(Succ(x0)), Neg(x1))
new_esEs1
new_lt(Neg(Zero), Neg(Zero))
From the DPs we obtained the following set of size-change graphs:
↳ HASKELL
↳ LR
↳ HASKELL
↳ CR
↳ HASKELL
↳ IFR
↳ HASKELL
↳ BR
↳ HASKELL
↳ COR
↳ HASKELL
↳ LetRed
↳ HASKELL
↳ NumRed
↳ HASKELL
↳ Narrow
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
new_plusFM_CNew_elt01(ywz1968, ywz1969, ywz1970, ywz1971, ywz1972, ywz1973, ywz1974, Neg(Succ(ywz197500)), ywz1976, ywz1977, ywz1978, ywz1979, False, h) → new_plusFM_CNew_elt02(ywz1968, ywz1969, ywz1970, ywz1971, ywz1972, ywz1973, ywz1974, ywz1979, h)
new_plusFM_CNew_elt01(ywz1968, ywz1969, ywz1970, ywz1971, ywz1972, ywz1973, ywz1974, ywz1975, ywz1976, ywz1977, Branch(ywz19780, ywz19781, ywz19782, ywz19783, ywz19784), ywz1979, True, h) → new_plusFM_CNew_elt01(ywz1968, ywz1969, ywz1970, ywz1971, ywz1972, ywz1973, ywz1974, ywz19780, ywz19781, ywz19782, ywz19783, ywz19784, new_lt(Neg(Zero), ywz19780), h)
new_plusFM_CNew_elt02(ywz1968, ywz1969, ywz1970, ywz1971, ywz1972, ywz1973, ywz1974, Branch(ywz19780, ywz19781, ywz19782, ywz19783, ywz19784), h) → new_plusFM_CNew_elt01(ywz1968, ywz1969, ywz1970, ywz1971, ywz1972, ywz1973, ywz1974, ywz19780, ywz19781, ywz19782, ywz19783, ywz19784, new_lt(Neg(Zero), ywz19780), h)
new_lt(Pos(Zero), Neg(Succ(ywz83200))) → new_esEs2
new_lt(Neg(Zero), Pos(Succ(ywz83200))) → new_esEs1
new_lt(Pos(Zero), Neg(Zero)) → new_esEs0
new_lt(Neg(Zero), Pos(Zero)) → new_esEs0
new_lt(Neg(Zero), Neg(Zero)) → new_esEs0
new_lt(Pos(Succ(ywz83700)), Pos(ywz8320)) → new_esEs3(Succ(ywz83700), ywz8320)
new_lt(Pos(Zero), Pos(Succ(ywz83200))) → new_esEs3(Zero, Succ(ywz83200))
new_lt(Neg(Succ(ywz83700)), Neg(ywz8320)) → new_esEs3(ywz8320, Succ(ywz83700))
new_esEs3(Zero, Zero) → new_esEs0
new_esEs1 → True
new_esEs0 → False
new_esEs3(Succ(ywz1055000), Zero) → new_esEs2
new_esEs3(Succ(ywz1055000), Succ(ywz104800)) → new_esEs3(ywz1055000, ywz104800)
new_lt(Pos(Zero), Pos(Zero)) → new_esEs0
new_lt(Pos(Succ(ywz83700)), Neg(ywz8320)) → new_esEs2
new_esEs2 → False
new_esEs3(Zero, Succ(ywz104800)) → new_esEs1
new_lt(Neg(Zero), Neg(Succ(ywz83200))) → new_esEs3(Succ(ywz83200), Zero)
new_lt(Neg(Succ(ywz83700)), Pos(ywz8320)) → new_esEs1
new_esEs3(Succ(x0), Succ(x1))
new_esEs3(Zero, Succ(x0))
new_lt(Neg(Zero), Neg(Succ(x0)))
new_lt(Pos(Zero), Pos(Zero))
new_esEs0
new_lt(Pos(Zero), Pos(Succ(x0)))
new_lt(Neg(Zero), Pos(Succ(x0)))
new_lt(Pos(Zero), Neg(Succ(x0)))
new_esEs3(Succ(x0), Zero)
new_lt(Pos(Succ(x0)), Pos(x1))
new_esEs3(Zero, Zero)
new_lt(Neg(Succ(x0)), Neg(x1))
new_esEs2
new_lt(Neg(Zero), Pos(Zero))
new_lt(Pos(Zero), Neg(Zero))
new_lt(Neg(Succ(x0)), Pos(x1))
new_lt(Pos(Succ(x0)), Neg(x1))
new_esEs1
new_lt(Neg(Zero), Neg(Zero))
↳ HASKELL
↳ LR
↳ HASKELL
↳ CR
↳ HASKELL
↳ IFR
↳ HASKELL
↳ BR
↳ HASKELL
↳ COR
↳ HASKELL
↳ LetRed
↳ HASKELL
↳ NumRed
↳ HASKELL
↳ Narrow
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QDPSizeChangeProof
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
new_plusFM_CNew_elt01(ywz1968, ywz1969, ywz1970, ywz1971, ywz1972, ywz1973, ywz1974, Neg(Succ(ywz197500)), ywz1976, ywz1977, ywz1978, ywz1979, False, h) → new_plusFM_CNew_elt02(ywz1968, ywz1969, ywz1970, ywz1971, ywz1972, ywz1973, ywz1974, ywz1979, h)
new_plusFM_CNew_elt01(ywz1968, ywz1969, ywz1970, ywz1971, ywz1972, ywz1973, ywz1974, ywz1975, ywz1976, ywz1977, Branch(ywz19780, ywz19781, ywz19782, ywz19783, ywz19784), ywz1979, True, h) → new_plusFM_CNew_elt01(ywz1968, ywz1969, ywz1970, ywz1971, ywz1972, ywz1973, ywz1974, ywz19780, ywz19781, ywz19782, ywz19783, ywz19784, new_lt(Neg(Zero), ywz19780), h)
new_plusFM_CNew_elt02(ywz1968, ywz1969, ywz1970, ywz1971, ywz1972, ywz1973, ywz1974, Branch(ywz19780, ywz19781, ywz19782, ywz19783, ywz19784), h) → new_plusFM_CNew_elt01(ywz1968, ywz1969, ywz1970, ywz1971, ywz1972, ywz1973, ywz1974, ywz19780, ywz19781, ywz19782, ywz19783, ywz19784, new_lt(Neg(Zero), ywz19780), h)
new_lt(Neg(Zero), Pos(Succ(ywz83200))) → new_esEs1
new_lt(Neg(Zero), Pos(Zero)) → new_esEs0
new_lt(Neg(Zero), Neg(Zero)) → new_esEs0
new_lt(Neg(Zero), Neg(Succ(ywz83200))) → new_esEs3(Succ(ywz83200), Zero)
new_esEs3(Succ(ywz1055000), Zero) → new_esEs2
new_esEs2 → False
new_esEs0 → False
new_esEs1 → True
new_esEs3(Succ(x0), Succ(x1))
new_esEs3(Zero, Succ(x0))
new_lt(Neg(Zero), Neg(Succ(x0)))
new_lt(Pos(Zero), Pos(Zero))
new_esEs0
new_lt(Pos(Zero), Pos(Succ(x0)))
new_lt(Neg(Zero), Pos(Succ(x0)))
new_lt(Pos(Zero), Neg(Succ(x0)))
new_esEs3(Succ(x0), Zero)
new_lt(Pos(Succ(x0)), Pos(x1))
new_esEs3(Zero, Zero)
new_lt(Neg(Succ(x0)), Neg(x1))
new_esEs2
new_lt(Neg(Zero), Pos(Zero))
new_lt(Pos(Zero), Neg(Zero))
new_lt(Neg(Succ(x0)), Pos(x1))
new_lt(Pos(Succ(x0)), Neg(x1))
new_esEs1
new_lt(Neg(Zero), Neg(Zero))
From the DPs we obtained the following set of size-change graphs:
↳ HASKELL
↳ LR
↳ HASKELL
↳ CR
↳ HASKELL
↳ IFR
↳ HASKELL
↳ BR
↳ HASKELL
↳ COR
↳ HASKELL
↳ LetRed
↳ HASKELL
↳ NumRed
↳ HASKELL
↳ Narrow
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
new_plusFM_CNew_elt05(ywz1792, ywz1793, ywz1794, ywz1795, ywz1796, ywz1797, ywz1798, Branch(ywz18020, ywz18021, ywz18022, ywz18023, ywz18024), h) → new_plusFM_CNew_elt03(ywz1792, ywz1793, ywz1794, ywz1795, ywz1796, ywz1797, ywz1798, ywz18020, ywz18021, ywz18022, ywz18023, ywz18024, new_lt(Neg(Succ(ywz1796)), ywz18020), h)
new_plusFM_CNew_elt04(ywz2399, ywz2400, ywz2401, ywz2402, ywz2403, ywz2404, ywz2405, ywz2406, ywz2407, ywz2408, ywz2409, ywz2410, Succ(ywz24110), Succ(ywz24120), ba) → new_plusFM_CNew_elt04(ywz2399, ywz2400, ywz2401, ywz2402, ywz2403, ywz2404, ywz2405, ywz2406, ywz2407, ywz2408, ywz2409, ywz2410, ywz24110, ywz24120, ba)
new_plusFM_CNew_elt03(ywz1792, ywz1793, ywz1794, ywz1795, ywz1796, ywz1797, ywz1798, ywz1799, ywz1800, ywz1801, Branch(ywz18020, ywz18021, ywz18022, ywz18023, ywz18024), ywz1803, True, h) → new_plusFM_CNew_elt03(ywz1792, ywz1793, ywz1794, ywz1795, ywz1796, ywz1797, ywz1798, ywz18020, ywz18021, ywz18022, ywz18023, ywz18024, new_lt(Neg(Succ(ywz1796)), ywz18020), h)
new_plusFM_CNew_elt04(ywz2399, ywz2400, ywz2401, ywz2402, ywz2403, ywz2404, ywz2405, ywz2406, ywz2407, ywz2408, ywz2409, ywz2410, Succ(ywz24110), Zero, ba) → new_plusFM_CNew_elt05(ywz2399, ywz2400, ywz2401, ywz2402, ywz2403, ywz2404, ywz2405, ywz2410, ba)
new_plusFM_CNew_elt03(ywz1792, ywz1793, ywz1794, ywz1795, ywz1796, ywz1797, ywz1798, Neg(Succ(ywz179900)), ywz1800, ywz1801, ywz1802, ywz1803, False, h) → new_plusFM_CNew_elt04(ywz1792, ywz1793, ywz1794, ywz1795, ywz1796, ywz1797, ywz1798, ywz179900, ywz1800, ywz1801, ywz1802, ywz1803, ywz179900, ywz1796, h)
new_lt(Pos(Zero), Neg(Succ(ywz83200))) → new_esEs2
new_lt(Neg(Zero), Pos(Succ(ywz83200))) → new_esEs1
new_lt(Pos(Zero), Neg(Zero)) → new_esEs0
new_lt(Neg(Zero), Pos(Zero)) → new_esEs0
new_lt(Neg(Zero), Neg(Zero)) → new_esEs0
new_lt(Pos(Succ(ywz83700)), Pos(ywz8320)) → new_esEs3(Succ(ywz83700), ywz8320)
new_lt(Pos(Zero), Pos(Succ(ywz83200))) → new_esEs3(Zero, Succ(ywz83200))
new_lt(Neg(Succ(ywz83700)), Neg(ywz8320)) → new_esEs3(ywz8320, Succ(ywz83700))
new_esEs3(Zero, Zero) → new_esEs0
new_esEs1 → True
new_esEs0 → False
new_esEs3(Succ(ywz1055000), Zero) → new_esEs2
new_esEs3(Succ(ywz1055000), Succ(ywz104800)) → new_esEs3(ywz1055000, ywz104800)
new_lt(Pos(Zero), Pos(Zero)) → new_esEs0
new_lt(Pos(Succ(ywz83700)), Neg(ywz8320)) → new_esEs2
new_esEs2 → False
new_esEs3(Zero, Succ(ywz104800)) → new_esEs1
new_lt(Neg(Zero), Neg(Succ(ywz83200))) → new_esEs3(Succ(ywz83200), Zero)
new_lt(Neg(Succ(ywz83700)), Pos(ywz8320)) → new_esEs1
new_esEs3(Succ(x0), Succ(x1))
new_esEs3(Zero, Succ(x0))
new_lt(Neg(Zero), Neg(Succ(x0)))
new_lt(Pos(Zero), Pos(Zero))
new_esEs0
new_lt(Pos(Zero), Pos(Succ(x0)))
new_lt(Neg(Zero), Pos(Succ(x0)))
new_lt(Pos(Zero), Neg(Succ(x0)))
new_esEs3(Succ(x0), Zero)
new_lt(Pos(Succ(x0)), Pos(x1))
new_esEs3(Zero, Zero)
new_lt(Neg(Succ(x0)), Neg(x1))
new_esEs2
new_lt(Neg(Zero), Pos(Zero))
new_lt(Pos(Zero), Neg(Zero))
new_lt(Neg(Succ(x0)), Pos(x1))
new_lt(Pos(Succ(x0)), Neg(x1))
new_esEs1
new_lt(Neg(Zero), Neg(Zero))
↳ HASKELL
↳ LR
↳ HASKELL
↳ CR
↳ HASKELL
↳ IFR
↳ HASKELL
↳ BR
↳ HASKELL
↳ COR
↳ HASKELL
↳ LetRed
↳ HASKELL
↳ NumRed
↳ HASKELL
↳ Narrow
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QDPSizeChangeProof
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
new_plusFM_CNew_elt05(ywz1792, ywz1793, ywz1794, ywz1795, ywz1796, ywz1797, ywz1798, Branch(ywz18020, ywz18021, ywz18022, ywz18023, ywz18024), h) → new_plusFM_CNew_elt03(ywz1792, ywz1793, ywz1794, ywz1795, ywz1796, ywz1797, ywz1798, ywz18020, ywz18021, ywz18022, ywz18023, ywz18024, new_lt(Neg(Succ(ywz1796)), ywz18020), h)
new_plusFM_CNew_elt04(ywz2399, ywz2400, ywz2401, ywz2402, ywz2403, ywz2404, ywz2405, ywz2406, ywz2407, ywz2408, ywz2409, ywz2410, Succ(ywz24110), Succ(ywz24120), ba) → new_plusFM_CNew_elt04(ywz2399, ywz2400, ywz2401, ywz2402, ywz2403, ywz2404, ywz2405, ywz2406, ywz2407, ywz2408, ywz2409, ywz2410, ywz24110, ywz24120, ba)
new_plusFM_CNew_elt03(ywz1792, ywz1793, ywz1794, ywz1795, ywz1796, ywz1797, ywz1798, ywz1799, ywz1800, ywz1801, Branch(ywz18020, ywz18021, ywz18022, ywz18023, ywz18024), ywz1803, True, h) → new_plusFM_CNew_elt03(ywz1792, ywz1793, ywz1794, ywz1795, ywz1796, ywz1797, ywz1798, ywz18020, ywz18021, ywz18022, ywz18023, ywz18024, new_lt(Neg(Succ(ywz1796)), ywz18020), h)
new_plusFM_CNew_elt04(ywz2399, ywz2400, ywz2401, ywz2402, ywz2403, ywz2404, ywz2405, ywz2406, ywz2407, ywz2408, ywz2409, ywz2410, Succ(ywz24110), Zero, ba) → new_plusFM_CNew_elt05(ywz2399, ywz2400, ywz2401, ywz2402, ywz2403, ywz2404, ywz2405, ywz2410, ba)
new_plusFM_CNew_elt03(ywz1792, ywz1793, ywz1794, ywz1795, ywz1796, ywz1797, ywz1798, Neg(Succ(ywz179900)), ywz1800, ywz1801, ywz1802, ywz1803, False, h) → new_plusFM_CNew_elt04(ywz1792, ywz1793, ywz1794, ywz1795, ywz1796, ywz1797, ywz1798, ywz179900, ywz1800, ywz1801, ywz1802, ywz1803, ywz179900, ywz1796, h)
new_lt(Neg(Succ(ywz83700)), Neg(ywz8320)) → new_esEs3(ywz8320, Succ(ywz83700))
new_lt(Neg(Succ(ywz83700)), Pos(ywz8320)) → new_esEs1
new_esEs1 → True
new_esEs3(Succ(ywz1055000), Succ(ywz104800)) → new_esEs3(ywz1055000, ywz104800)
new_esEs3(Zero, Succ(ywz104800)) → new_esEs1
new_esEs3(Zero, Zero) → new_esEs0
new_esEs3(Succ(ywz1055000), Zero) → new_esEs2
new_esEs2 → False
new_esEs0 → False
new_esEs3(Succ(x0), Succ(x1))
new_esEs3(Zero, Succ(x0))
new_lt(Neg(Zero), Neg(Succ(x0)))
new_lt(Pos(Zero), Pos(Zero))
new_esEs0
new_lt(Pos(Zero), Pos(Succ(x0)))
new_lt(Neg(Zero), Pos(Succ(x0)))
new_lt(Pos(Zero), Neg(Succ(x0)))
new_esEs3(Succ(x0), Zero)
new_lt(Pos(Succ(x0)), Pos(x1))
new_esEs3(Zero, Zero)
new_lt(Neg(Succ(x0)), Neg(x1))
new_esEs2
new_lt(Neg(Zero), Pos(Zero))
new_lt(Pos(Zero), Neg(Zero))
new_lt(Neg(Succ(x0)), Pos(x1))
new_lt(Pos(Succ(x0)), Neg(x1))
new_esEs1
new_lt(Neg(Zero), Neg(Zero))
From the DPs we obtained the following set of size-change graphs:
↳ HASKELL
↳ LR
↳ HASKELL
↳ CR
↳ HASKELL
↳ IFR
↳ HASKELL
↳ BR
↳ HASKELL
↳ COR
↳ HASKELL
↳ LetRed
↳ HASKELL
↳ NumRed
↳ HASKELL
↳ Narrow
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
new_plusFM_CNew_elt06(ywz1482, ywz1483, ywz1484, ywz1485, ywz1486, ywz1487, ywz1488, ywz1489, Neg(Succ(ywz149000)), ywz1491, ywz1492, ywz1493, ywz1494, False, h) → new_plusFM_CNew_elt07(ywz1482, ywz1483, ywz1484, ywz1485, ywz1486, ywz1487, ywz1488, ywz1489, ywz149000, ywz1491, ywz1492, ywz1493, ywz1494, ywz149000, ywz1487, h)
new_plusFM_CNew_elt07(ywz2383, ywz2384, ywz2385, ywz2386, ywz2387, ywz2388, ywz2389, ywz2390, ywz2391, ywz2392, ywz2393, ywz2394, ywz2395, Succ(ywz23960), Succ(ywz23970), ba) → new_plusFM_CNew_elt07(ywz2383, ywz2384, ywz2385, ywz2386, ywz2387, ywz2388, ywz2389, ywz2390, ywz2391, ywz2392, ywz2393, ywz2394, ywz2395, ywz23960, ywz23970, ba)
new_plusFM_CNew_elt08(ywz1482, ywz1483, ywz1484, ywz1485, ywz1486, ywz1487, ywz1488, ywz1489, Branch(ywz14930, ywz14931, ywz14932, ywz14933, ywz14934), h) → new_plusFM_CNew_elt06(ywz1482, ywz1483, ywz1484, ywz1485, ywz1486, ywz1487, ywz1488, ywz1489, ywz14930, ywz14931, ywz14932, ywz14933, ywz14934, new_lt(Neg(Succ(ywz1487)), ywz14930), h)
new_plusFM_CNew_elt06(ywz1482, ywz1483, ywz1484, ywz1485, ywz1486, ywz1487, ywz1488, ywz1489, ywz1490, ywz1491, ywz1492, Branch(ywz14930, ywz14931, ywz14932, ywz14933, ywz14934), ywz1494, True, h) → new_plusFM_CNew_elt06(ywz1482, ywz1483, ywz1484, ywz1485, ywz1486, ywz1487, ywz1488, ywz1489, ywz14930, ywz14931, ywz14932, ywz14933, ywz14934, new_lt(Neg(Succ(ywz1487)), ywz14930), h)
new_plusFM_CNew_elt07(ywz2383, ywz2384, ywz2385, ywz2386, ywz2387, ywz2388, ywz2389, ywz2390, ywz2391, ywz2392, ywz2393, ywz2394, ywz2395, Succ(ywz23960), Zero, ba) → new_plusFM_CNew_elt08(ywz2383, ywz2384, ywz2385, ywz2386, ywz2387, ywz2388, ywz2389, ywz2390, ywz2395, ba)
new_lt(Pos(Zero), Neg(Succ(ywz83200))) → new_esEs2
new_lt(Neg(Zero), Pos(Succ(ywz83200))) → new_esEs1
new_lt(Pos(Zero), Neg(Zero)) → new_esEs0
new_lt(Neg(Zero), Pos(Zero)) → new_esEs0
new_lt(Neg(Zero), Neg(Zero)) → new_esEs0
new_lt(Pos(Succ(ywz83700)), Pos(ywz8320)) → new_esEs3(Succ(ywz83700), ywz8320)
new_lt(Pos(Zero), Pos(Succ(ywz83200))) → new_esEs3(Zero, Succ(ywz83200))
new_lt(Neg(Succ(ywz83700)), Neg(ywz8320)) → new_esEs3(ywz8320, Succ(ywz83700))
new_esEs3(Zero, Zero) → new_esEs0
new_esEs1 → True
new_esEs0 → False
new_esEs3(Succ(ywz1055000), Zero) → new_esEs2
new_esEs3(Succ(ywz1055000), Succ(ywz104800)) → new_esEs3(ywz1055000, ywz104800)
new_lt(Pos(Zero), Pos(Zero)) → new_esEs0
new_lt(Pos(Succ(ywz83700)), Neg(ywz8320)) → new_esEs2
new_esEs2 → False
new_esEs3(Zero, Succ(ywz104800)) → new_esEs1
new_lt(Neg(Zero), Neg(Succ(ywz83200))) → new_esEs3(Succ(ywz83200), Zero)
new_lt(Neg(Succ(ywz83700)), Pos(ywz8320)) → new_esEs1
new_esEs3(Succ(x0), Succ(x1))
new_esEs3(Zero, Succ(x0))
new_lt(Neg(Zero), Neg(Succ(x0)))
new_lt(Pos(Zero), Pos(Zero))
new_esEs0
new_lt(Pos(Zero), Pos(Succ(x0)))
new_lt(Neg(Zero), Pos(Succ(x0)))
new_lt(Pos(Zero), Neg(Succ(x0)))
new_esEs3(Succ(x0), Zero)
new_lt(Pos(Succ(x0)), Pos(x1))
new_esEs3(Zero, Zero)
new_lt(Neg(Succ(x0)), Neg(x1))
new_esEs2
new_lt(Neg(Zero), Pos(Zero))
new_lt(Pos(Zero), Neg(Zero))
new_lt(Neg(Succ(x0)), Pos(x1))
new_lt(Pos(Succ(x0)), Neg(x1))
new_esEs1
new_lt(Neg(Zero), Neg(Zero))
↳ HASKELL
↳ LR
↳ HASKELL
↳ CR
↳ HASKELL
↳ IFR
↳ HASKELL
↳ BR
↳ HASKELL
↳ COR
↳ HASKELL
↳ LetRed
↳ HASKELL
↳ NumRed
↳ HASKELL
↳ Narrow
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QDPSizeChangeProof
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
new_plusFM_CNew_elt06(ywz1482, ywz1483, ywz1484, ywz1485, ywz1486, ywz1487, ywz1488, ywz1489, Neg(Succ(ywz149000)), ywz1491, ywz1492, ywz1493, ywz1494, False, h) → new_plusFM_CNew_elt07(ywz1482, ywz1483, ywz1484, ywz1485, ywz1486, ywz1487, ywz1488, ywz1489, ywz149000, ywz1491, ywz1492, ywz1493, ywz1494, ywz149000, ywz1487, h)
new_plusFM_CNew_elt07(ywz2383, ywz2384, ywz2385, ywz2386, ywz2387, ywz2388, ywz2389, ywz2390, ywz2391, ywz2392, ywz2393, ywz2394, ywz2395, Succ(ywz23960), Succ(ywz23970), ba) → new_plusFM_CNew_elt07(ywz2383, ywz2384, ywz2385, ywz2386, ywz2387, ywz2388, ywz2389, ywz2390, ywz2391, ywz2392, ywz2393, ywz2394, ywz2395, ywz23960, ywz23970, ba)
new_plusFM_CNew_elt08(ywz1482, ywz1483, ywz1484, ywz1485, ywz1486, ywz1487, ywz1488, ywz1489, Branch(ywz14930, ywz14931, ywz14932, ywz14933, ywz14934), h) → new_plusFM_CNew_elt06(ywz1482, ywz1483, ywz1484, ywz1485, ywz1486, ywz1487, ywz1488, ywz1489, ywz14930, ywz14931, ywz14932, ywz14933, ywz14934, new_lt(Neg(Succ(ywz1487)), ywz14930), h)
new_plusFM_CNew_elt06(ywz1482, ywz1483, ywz1484, ywz1485, ywz1486, ywz1487, ywz1488, ywz1489, ywz1490, ywz1491, ywz1492, Branch(ywz14930, ywz14931, ywz14932, ywz14933, ywz14934), ywz1494, True, h) → new_plusFM_CNew_elt06(ywz1482, ywz1483, ywz1484, ywz1485, ywz1486, ywz1487, ywz1488, ywz1489, ywz14930, ywz14931, ywz14932, ywz14933, ywz14934, new_lt(Neg(Succ(ywz1487)), ywz14930), h)
new_plusFM_CNew_elt07(ywz2383, ywz2384, ywz2385, ywz2386, ywz2387, ywz2388, ywz2389, ywz2390, ywz2391, ywz2392, ywz2393, ywz2394, ywz2395, Succ(ywz23960), Zero, ba) → new_plusFM_CNew_elt08(ywz2383, ywz2384, ywz2385, ywz2386, ywz2387, ywz2388, ywz2389, ywz2390, ywz2395, ba)
new_lt(Neg(Succ(ywz83700)), Neg(ywz8320)) → new_esEs3(ywz8320, Succ(ywz83700))
new_lt(Neg(Succ(ywz83700)), Pos(ywz8320)) → new_esEs1
new_esEs1 → True
new_esEs3(Succ(ywz1055000), Succ(ywz104800)) → new_esEs3(ywz1055000, ywz104800)
new_esEs3(Zero, Succ(ywz104800)) → new_esEs1
new_esEs3(Zero, Zero) → new_esEs0
new_esEs3(Succ(ywz1055000), Zero) → new_esEs2
new_esEs2 → False
new_esEs0 → False
new_esEs3(Succ(x0), Succ(x1))
new_esEs3(Zero, Succ(x0))
new_lt(Neg(Zero), Neg(Succ(x0)))
new_lt(Pos(Zero), Pos(Zero))
new_esEs0
new_lt(Pos(Zero), Pos(Succ(x0)))
new_lt(Neg(Zero), Pos(Succ(x0)))
new_lt(Pos(Zero), Neg(Succ(x0)))
new_esEs3(Succ(x0), Zero)
new_lt(Pos(Succ(x0)), Pos(x1))
new_esEs3(Zero, Zero)
new_lt(Neg(Succ(x0)), Neg(x1))
new_esEs2
new_lt(Neg(Zero), Pos(Zero))
new_lt(Pos(Zero), Neg(Zero))
new_lt(Neg(Succ(x0)), Pos(x1))
new_lt(Pos(Succ(x0)), Neg(x1))
new_esEs1
new_lt(Neg(Zero), Neg(Zero))
From the DPs we obtained the following set of size-change graphs:
↳ HASKELL
↳ LR
↳ HASKELL
↳ CR
↳ HASKELL
↳ IFR
↳ HASKELL
↳ BR
↳ HASKELL
↳ COR
↳ HASKELL
↳ LetRed
↳ HASKELL
↳ NumRed
↳ HASKELL
↳ Narrow
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
new_plusFM_CNew_elt09(ywz1704, ywz1705, ywz1706, ywz1707, ywz1708, ywz1709, ywz1710, ywz1711, ywz1712, ywz1713, ywz1714, Branch(ywz17150, ywz17151, ywz17152, ywz17153, ywz17154), ywz1716, True, h) → new_plusFM_CNew_elt09(ywz1704, ywz1705, ywz1706, ywz1707, ywz1708, ywz1709, ywz1710, ywz1711, ywz17150, ywz17151, ywz17152, ywz17153, ywz17154, new_lt(Neg(Succ(ywz1709)), ywz17150), h)
new_plusFM_CNew_elt010(ywz2064, ywz2065, ywz2066, ywz2067, ywz2068, ywz2069, ywz2070, ywz2071, ywz2072, ywz2073, ywz2074, ywz2075, ywz2076, Succ(ywz20770), Succ(ywz20780), ba) → new_plusFM_CNew_elt010(ywz2064, ywz2065, ywz2066, ywz2067, ywz2068, ywz2069, ywz2070, ywz2071, ywz2072, ywz2073, ywz2074, ywz2075, ywz2076, ywz20770, ywz20780, ba)
new_plusFM_CNew_elt011(ywz1704, ywz1705, ywz1706, ywz1707, ywz1708, ywz1709, ywz1710, ywz1711, Branch(ywz17150, ywz17151, ywz17152, ywz17153, ywz17154), h) → new_plusFM_CNew_elt09(ywz1704, ywz1705, ywz1706, ywz1707, ywz1708, ywz1709, ywz1710, ywz1711, ywz17150, ywz17151, ywz17152, ywz17153, ywz17154, new_lt(Neg(Succ(ywz1709)), ywz17150), h)
new_plusFM_CNew_elt010(ywz2064, ywz2065, ywz2066, ywz2067, ywz2068, ywz2069, ywz2070, ywz2071, ywz2072, ywz2073, ywz2074, ywz2075, ywz2076, Succ(ywz20770), Zero, ba) → new_plusFM_CNew_elt011(ywz2064, ywz2065, ywz2066, ywz2067, ywz2068, ywz2069, ywz2070, ywz2071, ywz2076, ba)
new_plusFM_CNew_elt09(ywz1704, ywz1705, ywz1706, ywz1707, ywz1708, ywz1709, ywz1710, ywz1711, Neg(Succ(ywz171200)), ywz1713, ywz1714, ywz1715, ywz1716, False, h) → new_plusFM_CNew_elt010(ywz1704, ywz1705, ywz1706, ywz1707, ywz1708, ywz1709, ywz1710, ywz1711, ywz171200, ywz1713, ywz1714, ywz1715, ywz1716, ywz171200, ywz1709, h)
new_lt(Pos(Zero), Neg(Succ(ywz83200))) → new_esEs2
new_lt(Neg(Zero), Pos(Succ(ywz83200))) → new_esEs1
new_lt(Pos(Zero), Neg(Zero)) → new_esEs0
new_lt(Neg(Zero), Pos(Zero)) → new_esEs0
new_lt(Neg(Zero), Neg(Zero)) → new_esEs0
new_lt(Pos(Succ(ywz83700)), Pos(ywz8320)) → new_esEs3(Succ(ywz83700), ywz8320)
new_lt(Pos(Zero), Pos(Succ(ywz83200))) → new_esEs3(Zero, Succ(ywz83200))
new_lt(Neg(Succ(ywz83700)), Neg(ywz8320)) → new_esEs3(ywz8320, Succ(ywz83700))
new_esEs3(Zero, Zero) → new_esEs0
new_esEs1 → True
new_esEs0 → False
new_esEs3(Succ(ywz1055000), Zero) → new_esEs2
new_esEs3(Succ(ywz1055000), Succ(ywz104800)) → new_esEs3(ywz1055000, ywz104800)
new_lt(Pos(Zero), Pos(Zero)) → new_esEs0
new_lt(Pos(Succ(ywz83700)), Neg(ywz8320)) → new_esEs2
new_esEs2 → False
new_esEs3(Zero, Succ(ywz104800)) → new_esEs1
new_lt(Neg(Zero), Neg(Succ(ywz83200))) → new_esEs3(Succ(ywz83200), Zero)
new_lt(Neg(Succ(ywz83700)), Pos(ywz8320)) → new_esEs1
new_esEs3(Succ(x0), Succ(x1))
new_esEs3(Zero, Succ(x0))
new_lt(Neg(Zero), Neg(Succ(x0)))
new_lt(Pos(Zero), Pos(Zero))
new_esEs0
new_lt(Pos(Zero), Pos(Succ(x0)))
new_lt(Neg(Zero), Pos(Succ(x0)))
new_lt(Pos(Zero), Neg(Succ(x0)))
new_esEs3(Succ(x0), Zero)
new_lt(Pos(Succ(x0)), Pos(x1))
new_esEs3(Zero, Zero)
new_lt(Neg(Succ(x0)), Neg(x1))
new_esEs2
new_lt(Neg(Zero), Pos(Zero))
new_lt(Pos(Zero), Neg(Zero))
new_lt(Neg(Succ(x0)), Pos(x1))
new_lt(Pos(Succ(x0)), Neg(x1))
new_esEs1
new_lt(Neg(Zero), Neg(Zero))
↳ HASKELL
↳ LR
↳ HASKELL
↳ CR
↳ HASKELL
↳ IFR
↳ HASKELL
↳ BR
↳ HASKELL
↳ COR
↳ HASKELL
↳ LetRed
↳ HASKELL
↳ NumRed
↳ HASKELL
↳ Narrow
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QDPSizeChangeProof
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
new_plusFM_CNew_elt09(ywz1704, ywz1705, ywz1706, ywz1707, ywz1708, ywz1709, ywz1710, ywz1711, ywz1712, ywz1713, ywz1714, Branch(ywz17150, ywz17151, ywz17152, ywz17153, ywz17154), ywz1716, True, h) → new_plusFM_CNew_elt09(ywz1704, ywz1705, ywz1706, ywz1707, ywz1708, ywz1709, ywz1710, ywz1711, ywz17150, ywz17151, ywz17152, ywz17153, ywz17154, new_lt(Neg(Succ(ywz1709)), ywz17150), h)
new_plusFM_CNew_elt010(ywz2064, ywz2065, ywz2066, ywz2067, ywz2068, ywz2069, ywz2070, ywz2071, ywz2072, ywz2073, ywz2074, ywz2075, ywz2076, Succ(ywz20770), Succ(ywz20780), ba) → new_plusFM_CNew_elt010(ywz2064, ywz2065, ywz2066, ywz2067, ywz2068, ywz2069, ywz2070, ywz2071, ywz2072, ywz2073, ywz2074, ywz2075, ywz2076, ywz20770, ywz20780, ba)
new_plusFM_CNew_elt011(ywz1704, ywz1705, ywz1706, ywz1707, ywz1708, ywz1709, ywz1710, ywz1711, Branch(ywz17150, ywz17151, ywz17152, ywz17153, ywz17154), h) → new_plusFM_CNew_elt09(ywz1704, ywz1705, ywz1706, ywz1707, ywz1708, ywz1709, ywz1710, ywz1711, ywz17150, ywz17151, ywz17152, ywz17153, ywz17154, new_lt(Neg(Succ(ywz1709)), ywz17150), h)
new_plusFM_CNew_elt010(ywz2064, ywz2065, ywz2066, ywz2067, ywz2068, ywz2069, ywz2070, ywz2071, ywz2072, ywz2073, ywz2074, ywz2075, ywz2076, Succ(ywz20770), Zero, ba) → new_plusFM_CNew_elt011(ywz2064, ywz2065, ywz2066, ywz2067, ywz2068, ywz2069, ywz2070, ywz2071, ywz2076, ba)
new_plusFM_CNew_elt09(ywz1704, ywz1705, ywz1706, ywz1707, ywz1708, ywz1709, ywz1710, ywz1711, Neg(Succ(ywz171200)), ywz1713, ywz1714, ywz1715, ywz1716, False, h) → new_plusFM_CNew_elt010(ywz1704, ywz1705, ywz1706, ywz1707, ywz1708, ywz1709, ywz1710, ywz1711, ywz171200, ywz1713, ywz1714, ywz1715, ywz1716, ywz171200, ywz1709, h)
new_lt(Neg(Succ(ywz83700)), Neg(ywz8320)) → new_esEs3(ywz8320, Succ(ywz83700))
new_lt(Neg(Succ(ywz83700)), Pos(ywz8320)) → new_esEs1
new_esEs1 → True
new_esEs3(Succ(ywz1055000), Succ(ywz104800)) → new_esEs3(ywz1055000, ywz104800)
new_esEs3(Zero, Succ(ywz104800)) → new_esEs1
new_esEs3(Zero, Zero) → new_esEs0
new_esEs3(Succ(ywz1055000), Zero) → new_esEs2
new_esEs2 → False
new_esEs0 → False
new_esEs3(Succ(x0), Succ(x1))
new_esEs3(Zero, Succ(x0))
new_lt(Neg(Zero), Neg(Succ(x0)))
new_lt(Pos(Zero), Pos(Zero))
new_esEs0
new_lt(Pos(Zero), Pos(Succ(x0)))
new_lt(Neg(Zero), Pos(Succ(x0)))
new_lt(Pos(Zero), Neg(Succ(x0)))
new_esEs3(Succ(x0), Zero)
new_lt(Pos(Succ(x0)), Pos(x1))
new_esEs3(Zero, Zero)
new_lt(Neg(Succ(x0)), Neg(x1))
new_esEs2
new_lt(Neg(Zero), Pos(Zero))
new_lt(Pos(Zero), Neg(Zero))
new_lt(Neg(Succ(x0)), Pos(x1))
new_lt(Pos(Succ(x0)), Neg(x1))
new_esEs1
new_lt(Neg(Zero), Neg(Zero))
From the DPs we obtained the following set of size-change graphs:
↳ HASKELL
↳ LR
↳ HASKELL
↳ CR
↳ HASKELL
↳ IFR
↳ HASKELL
↳ BR
↳ HASKELL
↳ COR
↳ HASKELL
↳ LetRed
↳ HASKELL
↳ NumRed
↳ HASKELL
↳ Narrow
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
new_plusFM_CNew_elt012(ywz1953, ywz1954, ywz1955, ywz1956, ywz1957, ywz1958, ywz1959, ywz1960, ywz1961, ywz1962, Branch(ywz19630, ywz19631, ywz19632, ywz19633, ywz19634), ywz1964, True, h) → new_plusFM_CNew_elt012(ywz1953, ywz1954, ywz1955, ywz1956, ywz1957, ywz1958, ywz1959, ywz19630, ywz19631, ywz19632, ywz19633, ywz19634, new_lt(Pos(Zero), ywz19630), h)
new_plusFM_CNew_elt013(ywz1953, ywz1954, ywz1955, ywz1956, ywz1957, ywz1958, ywz1959, Branch(ywz19630, ywz19631, ywz19632, ywz19633, ywz19634), h) → new_plusFM_CNew_elt012(ywz1953, ywz1954, ywz1955, ywz1956, ywz1957, ywz1958, ywz1959, ywz19630, ywz19631, ywz19632, ywz19633, ywz19634, new_lt(Pos(Zero), ywz19630), h)
new_plusFM_CNew_elt012(ywz1953, ywz1954, ywz1955, ywz1956, ywz1957, ywz1958, ywz1959, Neg(Succ(ywz196000)), ywz1961, ywz1962, ywz1963, ywz1964, False, h) → new_plusFM_CNew_elt013(ywz1953, ywz1954, ywz1955, ywz1956, ywz1957, ywz1958, ywz1959, ywz1964, h)
new_lt(Pos(Zero), Neg(Succ(ywz83200))) → new_esEs2
new_lt(Neg(Zero), Pos(Succ(ywz83200))) → new_esEs1
new_lt(Pos(Zero), Neg(Zero)) → new_esEs0
new_lt(Neg(Zero), Pos(Zero)) → new_esEs0
new_lt(Neg(Zero), Neg(Zero)) → new_esEs0
new_lt(Pos(Succ(ywz83700)), Pos(ywz8320)) → new_esEs3(Succ(ywz83700), ywz8320)
new_lt(Pos(Zero), Pos(Succ(ywz83200))) → new_esEs3(Zero, Succ(ywz83200))
new_lt(Neg(Succ(ywz83700)), Neg(ywz8320)) → new_esEs3(ywz8320, Succ(ywz83700))
new_esEs3(Zero, Zero) → new_esEs0
new_esEs1 → True
new_esEs0 → False
new_esEs3(Succ(ywz1055000), Zero) → new_esEs2
new_esEs3(Succ(ywz1055000), Succ(ywz104800)) → new_esEs3(ywz1055000, ywz104800)
new_lt(Pos(Zero), Pos(Zero)) → new_esEs0
new_lt(Pos(Succ(ywz83700)), Neg(ywz8320)) → new_esEs2
new_esEs2 → False
new_esEs3(Zero, Succ(ywz104800)) → new_esEs1
new_lt(Neg(Zero), Neg(Succ(ywz83200))) → new_esEs3(Succ(ywz83200), Zero)
new_lt(Neg(Succ(ywz83700)), Pos(ywz8320)) → new_esEs1
new_esEs3(Succ(x0), Succ(x1))
new_esEs3(Zero, Succ(x0))
new_lt(Neg(Zero), Neg(Succ(x0)))
new_lt(Pos(Zero), Pos(Zero))
new_esEs0
new_lt(Pos(Zero), Pos(Succ(x0)))
new_lt(Neg(Zero), Pos(Succ(x0)))
new_lt(Pos(Zero), Neg(Succ(x0)))
new_esEs3(Succ(x0), Zero)
new_lt(Pos(Succ(x0)), Pos(x1))
new_esEs3(Zero, Zero)
new_lt(Neg(Succ(x0)), Neg(x1))
new_esEs2
new_lt(Neg(Zero), Pos(Zero))
new_lt(Pos(Zero), Neg(Zero))
new_lt(Neg(Succ(x0)), Pos(x1))
new_lt(Pos(Succ(x0)), Neg(x1))
new_esEs1
new_lt(Neg(Zero), Neg(Zero))
↳ HASKELL
↳ LR
↳ HASKELL
↳ CR
↳ HASKELL
↳ IFR
↳ HASKELL
↳ BR
↳ HASKELL
↳ COR
↳ HASKELL
↳ LetRed
↳ HASKELL
↳ NumRed
↳ HASKELL
↳ Narrow
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QDPSizeChangeProof
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
new_plusFM_CNew_elt012(ywz1953, ywz1954, ywz1955, ywz1956, ywz1957, ywz1958, ywz1959, ywz1960, ywz1961, ywz1962, Branch(ywz19630, ywz19631, ywz19632, ywz19633, ywz19634), ywz1964, True, h) → new_plusFM_CNew_elt012(ywz1953, ywz1954, ywz1955, ywz1956, ywz1957, ywz1958, ywz1959, ywz19630, ywz19631, ywz19632, ywz19633, ywz19634, new_lt(Pos(Zero), ywz19630), h)
new_plusFM_CNew_elt013(ywz1953, ywz1954, ywz1955, ywz1956, ywz1957, ywz1958, ywz1959, Branch(ywz19630, ywz19631, ywz19632, ywz19633, ywz19634), h) → new_plusFM_CNew_elt012(ywz1953, ywz1954, ywz1955, ywz1956, ywz1957, ywz1958, ywz1959, ywz19630, ywz19631, ywz19632, ywz19633, ywz19634, new_lt(Pos(Zero), ywz19630), h)
new_plusFM_CNew_elt012(ywz1953, ywz1954, ywz1955, ywz1956, ywz1957, ywz1958, ywz1959, Neg(Succ(ywz196000)), ywz1961, ywz1962, ywz1963, ywz1964, False, h) → new_plusFM_CNew_elt013(ywz1953, ywz1954, ywz1955, ywz1956, ywz1957, ywz1958, ywz1959, ywz1964, h)
new_lt(Pos(Zero), Neg(Succ(ywz83200))) → new_esEs2
new_lt(Pos(Zero), Neg(Zero)) → new_esEs0
new_lt(Pos(Zero), Pos(Succ(ywz83200))) → new_esEs3(Zero, Succ(ywz83200))
new_lt(Pos(Zero), Pos(Zero)) → new_esEs0
new_esEs0 → False
new_esEs3(Zero, Succ(ywz104800)) → new_esEs1
new_esEs1 → True
new_esEs2 → False
new_esEs3(Succ(x0), Succ(x1))
new_esEs3(Zero, Succ(x0))
new_lt(Neg(Zero), Neg(Succ(x0)))
new_lt(Pos(Zero), Pos(Zero))
new_esEs0
new_lt(Pos(Zero), Pos(Succ(x0)))
new_lt(Neg(Zero), Pos(Succ(x0)))
new_lt(Pos(Zero), Neg(Succ(x0)))
new_esEs3(Succ(x0), Zero)
new_lt(Pos(Succ(x0)), Pos(x1))
new_esEs3(Zero, Zero)
new_lt(Neg(Succ(x0)), Neg(x1))
new_esEs2
new_lt(Neg(Zero), Pos(Zero))
new_lt(Pos(Zero), Neg(Zero))
new_lt(Neg(Succ(x0)), Pos(x1))
new_lt(Pos(Succ(x0)), Neg(x1))
new_esEs1
new_lt(Neg(Zero), Neg(Zero))
From the DPs we obtained the following set of size-change graphs:
↳ HASKELL
↳ LR
↳ HASKELL
↳ CR
↳ HASKELL
↳ IFR
↳ HASKELL
↳ BR
↳ HASKELL
↳ COR
↳ HASKELL
↳ LetRed
↳ HASKELL
↳ NumRed
↳ HASKELL
↳ Narrow
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QDP
↳ QDP
↳ QDP
new_plusFM_CNew_elt014(ywz2038, ywz2039, ywz2040, ywz2041, ywz2042, ywz2043, ywz2044, ywz2045, ywz2046, ywz2047, Branch(ywz20480, ywz20481, ywz20482, ywz20483, ywz20484), ywz2049, True, h) → new_plusFM_CNew_elt014(ywz2038, ywz2039, ywz2040, ywz2041, ywz2042, ywz2043, ywz2044, ywz20480, ywz20481, ywz20482, ywz20483, ywz20484, new_lt(Pos(Zero), ywz20480), h)
new_plusFM_CNew_elt014(ywz2038, ywz2039, ywz2040, ywz2041, ywz2042, ywz2043, ywz2044, Neg(Succ(ywz204500)), ywz2046, ywz2047, ywz2048, ywz2049, False, h) → new_plusFM_CNew_elt015(ywz2038, ywz2039, ywz2040, ywz2041, ywz2042, ywz2043, ywz2044, ywz2049, h)
new_plusFM_CNew_elt015(ywz2038, ywz2039, ywz2040, ywz2041, ywz2042, ywz2043, ywz2044, Branch(ywz20480, ywz20481, ywz20482, ywz20483, ywz20484), h) → new_plusFM_CNew_elt014(ywz2038, ywz2039, ywz2040, ywz2041, ywz2042, ywz2043, ywz2044, ywz20480, ywz20481, ywz20482, ywz20483, ywz20484, new_lt(Pos(Zero), ywz20480), h)
new_lt(Pos(Zero), Neg(Succ(ywz83200))) → new_esEs2
new_lt(Neg(Zero), Pos(Succ(ywz83200))) → new_esEs1
new_lt(Pos(Zero), Neg(Zero)) → new_esEs0
new_lt(Neg(Zero), Pos(Zero)) → new_esEs0
new_lt(Neg(Zero), Neg(Zero)) → new_esEs0
new_lt(Pos(Succ(ywz83700)), Pos(ywz8320)) → new_esEs3(Succ(ywz83700), ywz8320)
new_lt(Pos(Zero), Pos(Succ(ywz83200))) → new_esEs3(Zero, Succ(ywz83200))
new_lt(Neg(Succ(ywz83700)), Neg(ywz8320)) → new_esEs3(ywz8320, Succ(ywz83700))
new_esEs3(Zero, Zero) → new_esEs0
new_esEs1 → True
new_esEs0 → False
new_esEs3(Succ(ywz1055000), Zero) → new_esEs2
new_esEs3(Succ(ywz1055000), Succ(ywz104800)) → new_esEs3(ywz1055000, ywz104800)
new_lt(Pos(Zero), Pos(Zero)) → new_esEs0
new_lt(Pos(Succ(ywz83700)), Neg(ywz8320)) → new_esEs2
new_esEs2 → False
new_esEs3(Zero, Succ(ywz104800)) → new_esEs1
new_lt(Neg(Zero), Neg(Succ(ywz83200))) → new_esEs3(Succ(ywz83200), Zero)
new_lt(Neg(Succ(ywz83700)), Pos(ywz8320)) → new_esEs1
new_esEs3(Succ(x0), Succ(x1))
new_esEs3(Zero, Succ(x0))
new_lt(Neg(Zero), Neg(Succ(x0)))
new_lt(Pos(Zero), Pos(Zero))
new_esEs0
new_lt(Pos(Zero), Pos(Succ(x0)))
new_lt(Neg(Zero), Pos(Succ(x0)))
new_lt(Pos(Zero), Neg(Succ(x0)))
new_esEs3(Succ(x0), Zero)
new_lt(Pos(Succ(x0)), Pos(x1))
new_esEs3(Zero, Zero)
new_lt(Neg(Succ(x0)), Neg(x1))
new_esEs2
new_lt(Neg(Zero), Pos(Zero))
new_lt(Pos(Zero), Neg(Zero))
new_lt(Neg(Succ(x0)), Pos(x1))
new_lt(Pos(Succ(x0)), Neg(x1))
new_esEs1
new_lt(Neg(Zero), Neg(Zero))
↳ HASKELL
↳ LR
↳ HASKELL
↳ CR
↳ HASKELL
↳ IFR
↳ HASKELL
↳ BR
↳ HASKELL
↳ COR
↳ HASKELL
↳ LetRed
↳ HASKELL
↳ NumRed
↳ HASKELL
↳ Narrow
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QDPSizeChangeProof
↳ QDP
↳ QDP
↳ QDP
↳ QDP
new_plusFM_CNew_elt014(ywz2038, ywz2039, ywz2040, ywz2041, ywz2042, ywz2043, ywz2044, ywz2045, ywz2046, ywz2047, Branch(ywz20480, ywz20481, ywz20482, ywz20483, ywz20484), ywz2049, True, h) → new_plusFM_CNew_elt014(ywz2038, ywz2039, ywz2040, ywz2041, ywz2042, ywz2043, ywz2044, ywz20480, ywz20481, ywz20482, ywz20483, ywz20484, new_lt(Pos(Zero), ywz20480), h)
new_plusFM_CNew_elt014(ywz2038, ywz2039, ywz2040, ywz2041, ywz2042, ywz2043, ywz2044, Neg(Succ(ywz204500)), ywz2046, ywz2047, ywz2048, ywz2049, False, h) → new_plusFM_CNew_elt015(ywz2038, ywz2039, ywz2040, ywz2041, ywz2042, ywz2043, ywz2044, ywz2049, h)
new_plusFM_CNew_elt015(ywz2038, ywz2039, ywz2040, ywz2041, ywz2042, ywz2043, ywz2044, Branch(ywz20480, ywz20481, ywz20482, ywz20483, ywz20484), h) → new_plusFM_CNew_elt014(ywz2038, ywz2039, ywz2040, ywz2041, ywz2042, ywz2043, ywz2044, ywz20480, ywz20481, ywz20482, ywz20483, ywz20484, new_lt(Pos(Zero), ywz20480), h)
new_lt(Pos(Zero), Neg(Succ(ywz83200))) → new_esEs2
new_lt(Pos(Zero), Neg(Zero)) → new_esEs0
new_lt(Pos(Zero), Pos(Succ(ywz83200))) → new_esEs3(Zero, Succ(ywz83200))
new_lt(Pos(Zero), Pos(Zero)) → new_esEs0
new_esEs0 → False
new_esEs3(Zero, Succ(ywz104800)) → new_esEs1
new_esEs1 → True
new_esEs2 → False
new_esEs3(Succ(x0), Succ(x1))
new_esEs3(Zero, Succ(x0))
new_lt(Neg(Zero), Neg(Succ(x0)))
new_lt(Pos(Zero), Pos(Zero))
new_esEs0
new_lt(Pos(Zero), Pos(Succ(x0)))
new_lt(Neg(Zero), Pos(Succ(x0)))
new_lt(Pos(Zero), Neg(Succ(x0)))
new_esEs3(Succ(x0), Zero)
new_lt(Pos(Succ(x0)), Pos(x1))
new_esEs3(Zero, Zero)
new_lt(Neg(Succ(x0)), Neg(x1))
new_esEs2
new_lt(Neg(Zero), Pos(Zero))
new_lt(Pos(Zero), Neg(Zero))
new_lt(Neg(Succ(x0)), Pos(x1))
new_lt(Pos(Succ(x0)), Neg(x1))
new_esEs1
new_lt(Neg(Zero), Neg(Zero))
From the DPs we obtained the following set of size-change graphs:
↳ HASKELL
↳ LR
↳ HASKELL
↳ CR
↳ HASKELL
↳ IFR
↳ HASKELL
↳ BR
↳ HASKELL
↳ COR
↳ HASKELL
↳ LetRed
↳ HASKELL
↳ NumRed
↳ HASKELL
↳ Narrow
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QDP
↳ QDP
new_plusFM_CNew_elt017(ywz2283, ywz2284, ywz2285, ywz2286, ywz2287, ywz2288, ywz2289, ywz2290, ywz2291, ywz2292, ywz2293, ywz2294, ywz2295, Succ(ywz22960), Zero, ba) → new_plusFM_CNew_elt018(ywz2283, ywz2284, ywz2285, ywz2286, ywz2287, ywz2288, ywz2289, ywz2290, ywz2295, ba)
new_plusFM_CNew_elt018(ywz1896, ywz1897, ywz1898, ywz1899, ywz1900, ywz1901, ywz1902, ywz1903, Branch(ywz19070, ywz19071, ywz19072, ywz19073, ywz19074), h) → new_plusFM_CNew_elt016(ywz1896, ywz1897, ywz1898, ywz1899, ywz1900, ywz1901, ywz1902, ywz1903, ywz19070, ywz19071, ywz19072, ywz19073, ywz19074, new_lt(Pos(Succ(ywz1901)), ywz19070), h)
new_plusFM_CNew_elt016(ywz1896, ywz1897, ywz1898, ywz1899, ywz1900, ywz1901, ywz1902, ywz1903, Pos(Zero), ywz1905, ywz1906, ywz1907, ywz1908, False, h) → new_plusFM_CNew_elt018(ywz1896, ywz1897, ywz1898, ywz1899, ywz1900, ywz1901, ywz1902, ywz1903, ywz1908, h)
new_plusFM_CNew_elt017(ywz2283, ywz2284, ywz2285, ywz2286, ywz2287, ywz2288, ywz2289, ywz2290, ywz2291, ywz2292, ywz2293, ywz2294, ywz2295, Succ(ywz22960), Succ(ywz22970), ba) → new_plusFM_CNew_elt017(ywz2283, ywz2284, ywz2285, ywz2286, ywz2287, ywz2288, ywz2289, ywz2290, ywz2291, ywz2292, ywz2293, ywz2294, ywz2295, ywz22960, ywz22970, ba)
new_plusFM_CNew_elt016(ywz1896, ywz1897, ywz1898, ywz1899, ywz1900, ywz1901, ywz1902, ywz1903, Pos(Succ(ywz190400)), ywz1905, ywz1906, ywz1907, ywz1908, False, h) → new_plusFM_CNew_elt017(ywz1896, ywz1897, ywz1898, ywz1899, ywz1900, ywz1901, ywz1902, ywz1903, ywz190400, ywz1905, ywz1906, ywz1907, ywz1908, ywz1901, ywz190400, h)
new_plusFM_CNew_elt016(ywz1896, ywz1897, ywz1898, ywz1899, ywz1900, ywz1901, ywz1902, ywz1903, Neg(ywz19040), ywz1905, ywz1906, ywz1907, ywz1908, False, h) → new_plusFM_CNew_elt018(ywz1896, ywz1897, ywz1898, ywz1899, ywz1900, ywz1901, ywz1902, ywz1903, ywz1908, h)
new_plusFM_CNew_elt016(ywz1896, ywz1897, ywz1898, ywz1899, ywz1900, ywz1901, ywz1902, ywz1903, ywz1904, ywz1905, ywz1906, Branch(ywz19070, ywz19071, ywz19072, ywz19073, ywz19074), ywz1908, True, h) → new_plusFM_CNew_elt016(ywz1896, ywz1897, ywz1898, ywz1899, ywz1900, ywz1901, ywz1902, ywz1903, ywz19070, ywz19071, ywz19072, ywz19073, ywz19074, new_lt(Pos(Succ(ywz1901)), ywz19070), h)
new_lt(Pos(Zero), Neg(Succ(ywz83200))) → new_esEs2
new_lt(Neg(Zero), Pos(Succ(ywz83200))) → new_esEs1
new_lt(Pos(Zero), Neg(Zero)) → new_esEs0
new_lt(Neg(Zero), Pos(Zero)) → new_esEs0
new_lt(Neg(Zero), Neg(Zero)) → new_esEs0
new_lt(Pos(Succ(ywz83700)), Pos(ywz8320)) → new_esEs3(Succ(ywz83700), ywz8320)
new_lt(Pos(Zero), Pos(Succ(ywz83200))) → new_esEs3(Zero, Succ(ywz83200))
new_lt(Neg(Succ(ywz83700)), Neg(ywz8320)) → new_esEs3(ywz8320, Succ(ywz83700))
new_esEs3(Zero, Zero) → new_esEs0
new_esEs1 → True
new_esEs0 → False
new_esEs3(Succ(ywz1055000), Zero) → new_esEs2
new_esEs3(Succ(ywz1055000), Succ(ywz104800)) → new_esEs3(ywz1055000, ywz104800)
new_lt(Pos(Zero), Pos(Zero)) → new_esEs0
new_lt(Pos(Succ(ywz83700)), Neg(ywz8320)) → new_esEs2
new_esEs2 → False
new_esEs3(Zero, Succ(ywz104800)) → new_esEs1
new_lt(Neg(Zero), Neg(Succ(ywz83200))) → new_esEs3(Succ(ywz83200), Zero)
new_lt(Neg(Succ(ywz83700)), Pos(ywz8320)) → new_esEs1
new_esEs3(Succ(x0), Succ(x1))
new_esEs3(Zero, Succ(x0))
new_lt(Neg(Zero), Neg(Succ(x0)))
new_lt(Pos(Zero), Pos(Zero))
new_esEs0
new_lt(Pos(Zero), Pos(Succ(x0)))
new_lt(Neg(Zero), Pos(Succ(x0)))
new_lt(Pos(Zero), Neg(Succ(x0)))
new_esEs3(Succ(x0), Zero)
new_lt(Pos(Succ(x0)), Pos(x1))
new_esEs3(Zero, Zero)
new_lt(Neg(Succ(x0)), Neg(x1))
new_esEs2
new_lt(Neg(Zero), Pos(Zero))
new_lt(Pos(Zero), Neg(Zero))
new_lt(Neg(Succ(x0)), Pos(x1))
new_lt(Pos(Succ(x0)), Neg(x1))
new_esEs1
new_lt(Neg(Zero), Neg(Zero))
↳ HASKELL
↳ LR
↳ HASKELL
↳ CR
↳ HASKELL
↳ IFR
↳ HASKELL
↳ BR
↳ HASKELL
↳ COR
↳ HASKELL
↳ LetRed
↳ HASKELL
↳ NumRed
↳ HASKELL
↳ Narrow
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QDPSizeChangeProof
↳ QDP
↳ QDP
↳ QDP
new_plusFM_CNew_elt017(ywz2283, ywz2284, ywz2285, ywz2286, ywz2287, ywz2288, ywz2289, ywz2290, ywz2291, ywz2292, ywz2293, ywz2294, ywz2295, Succ(ywz22960), Zero, ba) → new_plusFM_CNew_elt018(ywz2283, ywz2284, ywz2285, ywz2286, ywz2287, ywz2288, ywz2289, ywz2290, ywz2295, ba)
new_plusFM_CNew_elt018(ywz1896, ywz1897, ywz1898, ywz1899, ywz1900, ywz1901, ywz1902, ywz1903, Branch(ywz19070, ywz19071, ywz19072, ywz19073, ywz19074), h) → new_plusFM_CNew_elt016(ywz1896, ywz1897, ywz1898, ywz1899, ywz1900, ywz1901, ywz1902, ywz1903, ywz19070, ywz19071, ywz19072, ywz19073, ywz19074, new_lt(Pos(Succ(ywz1901)), ywz19070), h)
new_plusFM_CNew_elt016(ywz1896, ywz1897, ywz1898, ywz1899, ywz1900, ywz1901, ywz1902, ywz1903, Pos(Zero), ywz1905, ywz1906, ywz1907, ywz1908, False, h) → new_plusFM_CNew_elt018(ywz1896, ywz1897, ywz1898, ywz1899, ywz1900, ywz1901, ywz1902, ywz1903, ywz1908, h)
new_plusFM_CNew_elt017(ywz2283, ywz2284, ywz2285, ywz2286, ywz2287, ywz2288, ywz2289, ywz2290, ywz2291, ywz2292, ywz2293, ywz2294, ywz2295, Succ(ywz22960), Succ(ywz22970), ba) → new_plusFM_CNew_elt017(ywz2283, ywz2284, ywz2285, ywz2286, ywz2287, ywz2288, ywz2289, ywz2290, ywz2291, ywz2292, ywz2293, ywz2294, ywz2295, ywz22960, ywz22970, ba)
new_plusFM_CNew_elt016(ywz1896, ywz1897, ywz1898, ywz1899, ywz1900, ywz1901, ywz1902, ywz1903, Pos(Succ(ywz190400)), ywz1905, ywz1906, ywz1907, ywz1908, False, h) → new_plusFM_CNew_elt017(ywz1896, ywz1897, ywz1898, ywz1899, ywz1900, ywz1901, ywz1902, ywz1903, ywz190400, ywz1905, ywz1906, ywz1907, ywz1908, ywz1901, ywz190400, h)
new_plusFM_CNew_elt016(ywz1896, ywz1897, ywz1898, ywz1899, ywz1900, ywz1901, ywz1902, ywz1903, Neg(ywz19040), ywz1905, ywz1906, ywz1907, ywz1908, False, h) → new_plusFM_CNew_elt018(ywz1896, ywz1897, ywz1898, ywz1899, ywz1900, ywz1901, ywz1902, ywz1903, ywz1908, h)
new_plusFM_CNew_elt016(ywz1896, ywz1897, ywz1898, ywz1899, ywz1900, ywz1901, ywz1902, ywz1903, ywz1904, ywz1905, ywz1906, Branch(ywz19070, ywz19071, ywz19072, ywz19073, ywz19074), ywz1908, True, h) → new_plusFM_CNew_elt016(ywz1896, ywz1897, ywz1898, ywz1899, ywz1900, ywz1901, ywz1902, ywz1903, ywz19070, ywz19071, ywz19072, ywz19073, ywz19074, new_lt(Pos(Succ(ywz1901)), ywz19070), h)
new_lt(Pos(Succ(ywz83700)), Pos(ywz8320)) → new_esEs3(Succ(ywz83700), ywz8320)
new_lt(Pos(Succ(ywz83700)), Neg(ywz8320)) → new_esEs2
new_esEs2 → False
new_esEs3(Succ(ywz1055000), Zero) → new_esEs2
new_esEs3(Succ(ywz1055000), Succ(ywz104800)) → new_esEs3(ywz1055000, ywz104800)
new_esEs3(Zero, Zero) → new_esEs0
new_esEs3(Zero, Succ(ywz104800)) → new_esEs1
new_esEs1 → True
new_esEs0 → False
new_esEs3(Succ(x0), Succ(x1))
new_esEs3(Zero, Succ(x0))
new_lt(Neg(Zero), Neg(Succ(x0)))
new_lt(Pos(Zero), Pos(Zero))
new_esEs0
new_lt(Pos(Zero), Pos(Succ(x0)))
new_lt(Neg(Zero), Pos(Succ(x0)))
new_lt(Pos(Zero), Neg(Succ(x0)))
new_esEs3(Succ(x0), Zero)
new_lt(Pos(Succ(x0)), Pos(x1))
new_esEs3(Zero, Zero)
new_lt(Neg(Succ(x0)), Neg(x1))
new_esEs2
new_lt(Neg(Zero), Pos(Zero))
new_lt(Pos(Zero), Neg(Zero))
new_lt(Neg(Succ(x0)), Pos(x1))
new_lt(Pos(Succ(x0)), Neg(x1))
new_esEs1
new_lt(Neg(Zero), Neg(Zero))
From the DPs we obtained the following set of size-change graphs:
↳ HASKELL
↳ LR
↳ HASKELL
↳ CR
↳ HASKELL
↳ IFR
↳ HASKELL
↳ BR
↳ HASKELL
↳ COR
↳ HASKELL
↳ LetRed
↳ HASKELL
↳ NumRed
↳ HASKELL
↳ Narrow
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QDP
new_plusFM_CNew_elt021(ywz1883, ywz1884, ywz1885, ywz1886, ywz1887, ywz1888, ywz1889, Branch(ywz18930, ywz18931, ywz18932, ywz18933, ywz18934), h) → new_plusFM_CNew_elt019(ywz1883, ywz1884, ywz1885, ywz1886, ywz1887, ywz1888, ywz1889, ywz18930, ywz18931, ywz18932, ywz18933, ywz18934, new_lt(Pos(Succ(ywz1887)), ywz18930), h)
new_plusFM_CNew_elt020(ywz2368, ywz2369, ywz2370, ywz2371, ywz2372, ywz2373, ywz2374, ywz2375, ywz2376, ywz2377, ywz2378, ywz2379, Succ(ywz23800), Succ(ywz23810), ba) → new_plusFM_CNew_elt020(ywz2368, ywz2369, ywz2370, ywz2371, ywz2372, ywz2373, ywz2374, ywz2375, ywz2376, ywz2377, ywz2378, ywz2379, ywz23800, ywz23810, ba)
new_plusFM_CNew_elt019(ywz1883, ywz1884, ywz1885, ywz1886, ywz1887, ywz1888, ywz1889, Pos(Succ(ywz189000)), ywz1891, ywz1892, ywz1893, ywz1894, False, h) → new_plusFM_CNew_elt020(ywz1883, ywz1884, ywz1885, ywz1886, ywz1887, ywz1888, ywz1889, ywz189000, ywz1891, ywz1892, ywz1893, ywz1894, ywz1887, ywz189000, h)
new_plusFM_CNew_elt019(ywz1883, ywz1884, ywz1885, ywz1886, ywz1887, ywz1888, ywz1889, Neg(ywz18900), ywz1891, ywz1892, ywz1893, ywz1894, False, h) → new_plusFM_CNew_elt021(ywz1883, ywz1884, ywz1885, ywz1886, ywz1887, ywz1888, ywz1889, ywz1894, h)
new_plusFM_CNew_elt019(ywz1883, ywz1884, ywz1885, ywz1886, ywz1887, ywz1888, ywz1889, Pos(Zero), ywz1891, ywz1892, ywz1893, ywz1894, False, h) → new_plusFM_CNew_elt021(ywz1883, ywz1884, ywz1885, ywz1886, ywz1887, ywz1888, ywz1889, ywz1894, h)
new_plusFM_CNew_elt020(ywz2368, ywz2369, ywz2370, ywz2371, ywz2372, ywz2373, ywz2374, ywz2375, ywz2376, ywz2377, ywz2378, ywz2379, Succ(ywz23800), Zero, ba) → new_plusFM_CNew_elt021(ywz2368, ywz2369, ywz2370, ywz2371, ywz2372, ywz2373, ywz2374, ywz2379, ba)
new_plusFM_CNew_elt019(ywz1883, ywz1884, ywz1885, ywz1886, ywz1887, ywz1888, ywz1889, ywz1890, ywz1891, ywz1892, Branch(ywz18930, ywz18931, ywz18932, ywz18933, ywz18934), ywz1894, True, h) → new_plusFM_CNew_elt019(ywz1883, ywz1884, ywz1885, ywz1886, ywz1887, ywz1888, ywz1889, ywz18930, ywz18931, ywz18932, ywz18933, ywz18934, new_lt(Pos(Succ(ywz1887)), ywz18930), h)
new_lt(Pos(Zero), Neg(Succ(ywz83200))) → new_esEs2
new_lt(Neg(Zero), Pos(Succ(ywz83200))) → new_esEs1
new_lt(Pos(Zero), Neg(Zero)) → new_esEs0
new_lt(Neg(Zero), Pos(Zero)) → new_esEs0
new_lt(Neg(Zero), Neg(Zero)) → new_esEs0
new_lt(Pos(Succ(ywz83700)), Pos(ywz8320)) → new_esEs3(Succ(ywz83700), ywz8320)
new_lt(Pos(Zero), Pos(Succ(ywz83200))) → new_esEs3(Zero, Succ(ywz83200))
new_lt(Neg(Succ(ywz83700)), Neg(ywz8320)) → new_esEs3(ywz8320, Succ(ywz83700))
new_esEs3(Zero, Zero) → new_esEs0
new_esEs1 → True
new_esEs0 → False
new_esEs3(Succ(ywz1055000), Zero) → new_esEs2
new_esEs3(Succ(ywz1055000), Succ(ywz104800)) → new_esEs3(ywz1055000, ywz104800)
new_lt(Pos(Zero), Pos(Zero)) → new_esEs0
new_lt(Pos(Succ(ywz83700)), Neg(ywz8320)) → new_esEs2
new_esEs2 → False
new_esEs3(Zero, Succ(ywz104800)) → new_esEs1
new_lt(Neg(Zero), Neg(Succ(ywz83200))) → new_esEs3(Succ(ywz83200), Zero)
new_lt(Neg(Succ(ywz83700)), Pos(ywz8320)) → new_esEs1
new_esEs3(Succ(x0), Succ(x1))
new_esEs3(Zero, Succ(x0))
new_lt(Neg(Zero), Neg(Succ(x0)))
new_lt(Pos(Zero), Pos(Zero))
new_esEs0
new_lt(Pos(Zero), Pos(Succ(x0)))
new_lt(Neg(Zero), Pos(Succ(x0)))
new_lt(Pos(Zero), Neg(Succ(x0)))
new_esEs3(Succ(x0), Zero)
new_lt(Pos(Succ(x0)), Pos(x1))
new_esEs3(Zero, Zero)
new_lt(Neg(Succ(x0)), Neg(x1))
new_esEs2
new_lt(Neg(Zero), Pos(Zero))
new_lt(Pos(Zero), Neg(Zero))
new_lt(Neg(Succ(x0)), Pos(x1))
new_lt(Pos(Succ(x0)), Neg(x1))
new_esEs1
new_lt(Neg(Zero), Neg(Zero))
↳ HASKELL
↳ LR
↳ HASKELL
↳ CR
↳ HASKELL
↳ IFR
↳ HASKELL
↳ BR
↳ HASKELL
↳ COR
↳ HASKELL
↳ LetRed
↳ HASKELL
↳ NumRed
↳ HASKELL
↳ Narrow
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QDPSizeChangeProof
↳ QDP
↳ QDP
new_plusFM_CNew_elt021(ywz1883, ywz1884, ywz1885, ywz1886, ywz1887, ywz1888, ywz1889, Branch(ywz18930, ywz18931, ywz18932, ywz18933, ywz18934), h) → new_plusFM_CNew_elt019(ywz1883, ywz1884, ywz1885, ywz1886, ywz1887, ywz1888, ywz1889, ywz18930, ywz18931, ywz18932, ywz18933, ywz18934, new_lt(Pos(Succ(ywz1887)), ywz18930), h)
new_plusFM_CNew_elt020(ywz2368, ywz2369, ywz2370, ywz2371, ywz2372, ywz2373, ywz2374, ywz2375, ywz2376, ywz2377, ywz2378, ywz2379, Succ(ywz23800), Succ(ywz23810), ba) → new_plusFM_CNew_elt020(ywz2368, ywz2369, ywz2370, ywz2371, ywz2372, ywz2373, ywz2374, ywz2375, ywz2376, ywz2377, ywz2378, ywz2379, ywz23800, ywz23810, ba)
new_plusFM_CNew_elt019(ywz1883, ywz1884, ywz1885, ywz1886, ywz1887, ywz1888, ywz1889, Pos(Succ(ywz189000)), ywz1891, ywz1892, ywz1893, ywz1894, False, h) → new_plusFM_CNew_elt020(ywz1883, ywz1884, ywz1885, ywz1886, ywz1887, ywz1888, ywz1889, ywz189000, ywz1891, ywz1892, ywz1893, ywz1894, ywz1887, ywz189000, h)
new_plusFM_CNew_elt019(ywz1883, ywz1884, ywz1885, ywz1886, ywz1887, ywz1888, ywz1889, Neg(ywz18900), ywz1891, ywz1892, ywz1893, ywz1894, False, h) → new_plusFM_CNew_elt021(ywz1883, ywz1884, ywz1885, ywz1886, ywz1887, ywz1888, ywz1889, ywz1894, h)
new_plusFM_CNew_elt019(ywz1883, ywz1884, ywz1885, ywz1886, ywz1887, ywz1888, ywz1889, Pos(Zero), ywz1891, ywz1892, ywz1893, ywz1894, False, h) → new_plusFM_CNew_elt021(ywz1883, ywz1884, ywz1885, ywz1886, ywz1887, ywz1888, ywz1889, ywz1894, h)
new_plusFM_CNew_elt020(ywz2368, ywz2369, ywz2370, ywz2371, ywz2372, ywz2373, ywz2374, ywz2375, ywz2376, ywz2377, ywz2378, ywz2379, Succ(ywz23800), Zero, ba) → new_plusFM_CNew_elt021(ywz2368, ywz2369, ywz2370, ywz2371, ywz2372, ywz2373, ywz2374, ywz2379, ba)
new_plusFM_CNew_elt019(ywz1883, ywz1884, ywz1885, ywz1886, ywz1887, ywz1888, ywz1889, ywz1890, ywz1891, ywz1892, Branch(ywz18930, ywz18931, ywz18932, ywz18933, ywz18934), ywz1894, True, h) → new_plusFM_CNew_elt019(ywz1883, ywz1884, ywz1885, ywz1886, ywz1887, ywz1888, ywz1889, ywz18930, ywz18931, ywz18932, ywz18933, ywz18934, new_lt(Pos(Succ(ywz1887)), ywz18930), h)
new_lt(Pos(Succ(ywz83700)), Pos(ywz8320)) → new_esEs3(Succ(ywz83700), ywz8320)
new_lt(Pos(Succ(ywz83700)), Neg(ywz8320)) → new_esEs2
new_esEs2 → False
new_esEs3(Succ(ywz1055000), Zero) → new_esEs2
new_esEs3(Succ(ywz1055000), Succ(ywz104800)) → new_esEs3(ywz1055000, ywz104800)
new_esEs3(Zero, Zero) → new_esEs0
new_esEs3(Zero, Succ(ywz104800)) → new_esEs1
new_esEs1 → True
new_esEs0 → False
new_esEs3(Succ(x0), Succ(x1))
new_esEs3(Zero, Succ(x0))
new_lt(Neg(Zero), Neg(Succ(x0)))
new_lt(Pos(Zero), Pos(Zero))
new_esEs0
new_lt(Pos(Zero), Pos(Succ(x0)))
new_lt(Neg(Zero), Pos(Succ(x0)))
new_lt(Pos(Zero), Neg(Succ(x0)))
new_esEs3(Succ(x0), Zero)
new_lt(Pos(Succ(x0)), Pos(x1))
new_esEs3(Zero, Zero)
new_lt(Neg(Succ(x0)), Neg(x1))
new_esEs2
new_lt(Neg(Zero), Pos(Zero))
new_lt(Pos(Zero), Neg(Zero))
new_lt(Neg(Succ(x0)), Pos(x1))
new_lt(Pos(Succ(x0)), Neg(x1))
new_esEs1
new_lt(Neg(Zero), Neg(Zero))
From the DPs we obtained the following set of size-change graphs:
↳ HASKELL
↳ LR
↳ HASKELL
↳ CR
↳ HASKELL
↳ IFR
↳ HASKELL
↳ BR
↳ HASKELL
↳ COR
↳ HASKELL
↳ LetRed
↳ HASKELL
↳ NumRed
↳ HASKELL
↳ Narrow
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
new_plusFM_CNew_elt024(ywz1446, ywz1447, ywz1448, ywz1449, ywz1450, ywz1451, ywz1452, ywz1453, Pos(Succ(ywz145400)), ywz1455, ywz1456, ywz1457, ywz1458, False, ba) → new_plusFM_CNew_elt022(ywz1446, ywz1447, ywz1448, ywz1449, ywz1450, ywz1451, ywz1452, ywz1453, ywz145400, ywz1455, ywz1456, ywz1457, ywz1458, ywz1451, ywz145400, ba)
new_plusFM_CNew_elt022(ywz2351, ywz2352, ywz2353, ywz2354, ywz2355, ywz2356, ywz2357, ywz2358, ywz2359, ywz2360, ywz2361, ywz2362, ywz2363, Succ(ywz23640), Succ(ywz23650), h) → new_plusFM_CNew_elt022(ywz2351, ywz2352, ywz2353, ywz2354, ywz2355, ywz2356, ywz2357, ywz2358, ywz2359, ywz2360, ywz2361, ywz2362, ywz2363, ywz23640, ywz23650, h)
new_plusFM_CNew_elt024(ywz1446, ywz1447, ywz1448, ywz1449, ywz1450, ywz1451, ywz1452, ywz1453, Neg(ywz14540), ywz1455, ywz1456, ywz1457, ywz1458, False, ba) → new_plusFM_CNew_elt023(ywz1446, ywz1447, ywz1448, ywz1449, ywz1450, ywz1451, ywz1452, ywz1453, ywz1458, ba)
new_plusFM_CNew_elt024(ywz1446, ywz1447, ywz1448, ywz1449, ywz1450, ywz1451, ywz1452, ywz1453, Pos(Zero), ywz1455, ywz1456, ywz1457, ywz1458, False, ba) → new_plusFM_CNew_elt023(ywz1446, ywz1447, ywz1448, ywz1449, ywz1450, ywz1451, ywz1452, ywz1453, ywz1458, ba)
new_plusFM_CNew_elt023(ywz1446, ywz1447, ywz1448, ywz1449, ywz1450, ywz1451, ywz1452, ywz1453, Branch(ywz14570, ywz14571, ywz14572, ywz14573, ywz14574), ba) → new_plusFM_CNew_elt024(ywz1446, ywz1447, ywz1448, ywz1449, ywz1450, ywz1451, ywz1452, ywz1453, ywz14570, ywz14571, ywz14572, ywz14573, ywz14574, new_lt(Pos(Succ(ywz1451)), ywz14570), ba)
new_plusFM_CNew_elt024(ywz1446, ywz1447, ywz1448, ywz1449, ywz1450, ywz1451, ywz1452, ywz1453, ywz1454, ywz1455, ywz1456, Branch(ywz14570, ywz14571, ywz14572, ywz14573, ywz14574), ywz1458, True, ba) → new_plusFM_CNew_elt024(ywz1446, ywz1447, ywz1448, ywz1449, ywz1450, ywz1451, ywz1452, ywz1453, ywz14570, ywz14571, ywz14572, ywz14573, ywz14574, new_lt(Pos(Succ(ywz1451)), ywz14570), ba)
new_plusFM_CNew_elt022(ywz2351, ywz2352, ywz2353, ywz2354, ywz2355, ywz2356, ywz2357, ywz2358, ywz2359, ywz2360, ywz2361, ywz2362, ywz2363, Succ(ywz23640), Zero, h) → new_plusFM_CNew_elt023(ywz2351, ywz2352, ywz2353, ywz2354, ywz2355, ywz2356, ywz2357, ywz2358, ywz2363, h)
new_lt(Pos(Zero), Neg(Succ(ywz83200))) → new_esEs2
new_lt(Neg(Zero), Pos(Succ(ywz83200))) → new_esEs1
new_lt(Pos(Zero), Neg(Zero)) → new_esEs0
new_lt(Neg(Zero), Pos(Zero)) → new_esEs0
new_lt(Neg(Zero), Neg(Zero)) → new_esEs0
new_lt(Pos(Succ(ywz83700)), Pos(ywz8320)) → new_esEs3(Succ(ywz83700), ywz8320)
new_lt(Pos(Zero), Pos(Succ(ywz83200))) → new_esEs3(Zero, Succ(ywz83200))
new_lt(Neg(Succ(ywz83700)), Neg(ywz8320)) → new_esEs3(ywz8320, Succ(ywz83700))
new_esEs3(Zero, Zero) → new_esEs0
new_esEs1 → True
new_esEs0 → False
new_esEs3(Succ(ywz1055000), Zero) → new_esEs2
new_esEs3(Succ(ywz1055000), Succ(ywz104800)) → new_esEs3(ywz1055000, ywz104800)
new_lt(Pos(Zero), Pos(Zero)) → new_esEs0
new_lt(Pos(Succ(ywz83700)), Neg(ywz8320)) → new_esEs2
new_esEs2 → False
new_esEs3(Zero, Succ(ywz104800)) → new_esEs1
new_lt(Neg(Zero), Neg(Succ(ywz83200))) → new_esEs3(Succ(ywz83200), Zero)
new_lt(Neg(Succ(ywz83700)), Pos(ywz8320)) → new_esEs1
new_esEs3(Succ(x0), Succ(x1))
new_esEs3(Zero, Succ(x0))
new_lt(Neg(Zero), Neg(Succ(x0)))
new_lt(Pos(Zero), Pos(Zero))
new_esEs0
new_lt(Pos(Zero), Pos(Succ(x0)))
new_lt(Neg(Zero), Pos(Succ(x0)))
new_lt(Pos(Zero), Neg(Succ(x0)))
new_esEs3(Succ(x0), Zero)
new_lt(Pos(Succ(x0)), Pos(x1))
new_esEs3(Zero, Zero)
new_lt(Neg(Succ(x0)), Neg(x1))
new_esEs2
new_lt(Neg(Zero), Pos(Zero))
new_lt(Pos(Zero), Neg(Zero))
new_lt(Neg(Succ(x0)), Pos(x1))
new_lt(Pos(Succ(x0)), Neg(x1))
new_esEs1
new_lt(Neg(Zero), Neg(Zero))
↳ HASKELL
↳ LR
↳ HASKELL
↳ CR
↳ HASKELL
↳ IFR
↳ HASKELL
↳ BR
↳ HASKELL
↳ COR
↳ HASKELL
↳ LetRed
↳ HASKELL
↳ NumRed
↳ HASKELL
↳ Narrow
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QDPSizeChangeProof
↳ QDP
new_plusFM_CNew_elt024(ywz1446, ywz1447, ywz1448, ywz1449, ywz1450, ywz1451, ywz1452, ywz1453, Pos(Succ(ywz145400)), ywz1455, ywz1456, ywz1457, ywz1458, False, ba) → new_plusFM_CNew_elt022(ywz1446, ywz1447, ywz1448, ywz1449, ywz1450, ywz1451, ywz1452, ywz1453, ywz145400, ywz1455, ywz1456, ywz1457, ywz1458, ywz1451, ywz145400, ba)
new_plusFM_CNew_elt022(ywz2351, ywz2352, ywz2353, ywz2354, ywz2355, ywz2356, ywz2357, ywz2358, ywz2359, ywz2360, ywz2361, ywz2362, ywz2363, Succ(ywz23640), Succ(ywz23650), h) → new_plusFM_CNew_elt022(ywz2351, ywz2352, ywz2353, ywz2354, ywz2355, ywz2356, ywz2357, ywz2358, ywz2359, ywz2360, ywz2361, ywz2362, ywz2363, ywz23640, ywz23650, h)
new_plusFM_CNew_elt024(ywz1446, ywz1447, ywz1448, ywz1449, ywz1450, ywz1451, ywz1452, ywz1453, Neg(ywz14540), ywz1455, ywz1456, ywz1457, ywz1458, False, ba) → new_plusFM_CNew_elt023(ywz1446, ywz1447, ywz1448, ywz1449, ywz1450, ywz1451, ywz1452, ywz1453, ywz1458, ba)
new_plusFM_CNew_elt024(ywz1446, ywz1447, ywz1448, ywz1449, ywz1450, ywz1451, ywz1452, ywz1453, Pos(Zero), ywz1455, ywz1456, ywz1457, ywz1458, False, ba) → new_plusFM_CNew_elt023(ywz1446, ywz1447, ywz1448, ywz1449, ywz1450, ywz1451, ywz1452, ywz1453, ywz1458, ba)
new_plusFM_CNew_elt023(ywz1446, ywz1447, ywz1448, ywz1449, ywz1450, ywz1451, ywz1452, ywz1453, Branch(ywz14570, ywz14571, ywz14572, ywz14573, ywz14574), ba) → new_plusFM_CNew_elt024(ywz1446, ywz1447, ywz1448, ywz1449, ywz1450, ywz1451, ywz1452, ywz1453, ywz14570, ywz14571, ywz14572, ywz14573, ywz14574, new_lt(Pos(Succ(ywz1451)), ywz14570), ba)
new_plusFM_CNew_elt024(ywz1446, ywz1447, ywz1448, ywz1449, ywz1450, ywz1451, ywz1452, ywz1453, ywz1454, ywz1455, ywz1456, Branch(ywz14570, ywz14571, ywz14572, ywz14573, ywz14574), ywz1458, True, ba) → new_plusFM_CNew_elt024(ywz1446, ywz1447, ywz1448, ywz1449, ywz1450, ywz1451, ywz1452, ywz1453, ywz14570, ywz14571, ywz14572, ywz14573, ywz14574, new_lt(Pos(Succ(ywz1451)), ywz14570), ba)
new_plusFM_CNew_elt022(ywz2351, ywz2352, ywz2353, ywz2354, ywz2355, ywz2356, ywz2357, ywz2358, ywz2359, ywz2360, ywz2361, ywz2362, ywz2363, Succ(ywz23640), Zero, h) → new_plusFM_CNew_elt023(ywz2351, ywz2352, ywz2353, ywz2354, ywz2355, ywz2356, ywz2357, ywz2358, ywz2363, h)
new_lt(Pos(Succ(ywz83700)), Pos(ywz8320)) → new_esEs3(Succ(ywz83700), ywz8320)
new_lt(Pos(Succ(ywz83700)), Neg(ywz8320)) → new_esEs2
new_esEs2 → False
new_esEs3(Succ(ywz1055000), Zero) → new_esEs2
new_esEs3(Succ(ywz1055000), Succ(ywz104800)) → new_esEs3(ywz1055000, ywz104800)
new_esEs3(Zero, Zero) → new_esEs0
new_esEs3(Zero, Succ(ywz104800)) → new_esEs1
new_esEs1 → True
new_esEs0 → False
new_esEs3(Succ(x0), Succ(x1))
new_esEs3(Zero, Succ(x0))
new_lt(Neg(Zero), Neg(Succ(x0)))
new_lt(Pos(Zero), Pos(Zero))
new_esEs0
new_lt(Pos(Zero), Pos(Succ(x0)))
new_lt(Neg(Zero), Pos(Succ(x0)))
new_lt(Pos(Zero), Neg(Succ(x0)))
new_esEs3(Succ(x0), Zero)
new_lt(Pos(Succ(x0)), Pos(x1))
new_esEs3(Zero, Zero)
new_lt(Neg(Succ(x0)), Neg(x1))
new_esEs2
new_lt(Neg(Zero), Pos(Zero))
new_lt(Pos(Zero), Neg(Zero))
new_lt(Neg(Succ(x0)), Pos(x1))
new_lt(Pos(Succ(x0)), Neg(x1))
new_esEs1
new_lt(Neg(Zero), Neg(Zero))
From the DPs we obtained the following set of size-change graphs:
↳ HASKELL
↳ LR
↳ HASKELL
↳ CR
↳ HASKELL
↳ IFR
↳ HASKELL
↳ BR
↳ HASKELL
↳ COR
↳ HASKELL
↳ LetRed
↳ HASKELL
↳ NumRed
↳ HASKELL
↳ Narrow
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDPSizeChangeProof
new_plusFM_C(ywz3, Branch(ywz40, ywz41, ywz42, ywz43, ywz44), Branch(ywz50, ywz51, ywz52, ywz53, ywz54), h) → new_plusFM_C(ywz3, new_splitGT30(ywz40, ywz41, ywz42, ywz43, ywz44, ywz50, h), ywz54, h)
new_plusFM_C(ywz3, Branch(ywz40, ywz41, ywz42, ywz43, ywz44), Branch(ywz50, ywz51, ywz52, ywz53, ywz54), h) → new_plusFM_C(ywz3, new_splitLT30(ywz40, ywz41, ywz42, ywz43, ywz44, ywz50, h), ywz53, h)
new_splitGT30(Neg(Succ(ywz4000)), ywz41, ywz42, ywz43, ywz44, Pos(Zero), h) → new_splitGT6(ywz44, h)
new_splitLT30(Pos(Succ(ywz4000)), ywz41, ywz42, ywz43, ywz44, Pos(Succ(ywz5000)), h) → new_splitLT23(ywz4000, ywz41, ywz42, ywz43, ywz44, ywz5000, ywz5000, ywz4000, h)
new_splitGT6(EmptyFM, h) → new_emptyFM(h)
new_ps(Pos(ywz11210), Pos(ywz11190)) → Pos(new_primPlusNat2(ywz11210, ywz11190))
new_mkBalBranch6MkBalBranch11(ywz1023, ywz730, ywz731, ywz732, ywz733, Branch(ywz7340, ywz7341, ywz7342, ywz7343, ywz7344), ywz70, ywz71, ywz1022, False, h) → new_mkBranch(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Zero))))))))), ywz7340, ywz7341, new_mkBranch(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Zero)))))))))), ywz730, ywz731, ywz733, ywz7343, ty_Int, h), new_mkBranch(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Zero))))))))))), ywz70, ywz71, ywz7344, ywz1022, ty_Int, h), ty_Int, h)
new_primMulNat(Zero) → Zero
new_splitLT13(ywz1848, ywz1849, ywz1850, ywz1851, ywz1852, ywz1853, Succ(ywz18540), Succ(ywz18550), be) → new_splitLT13(ywz1848, ywz1849, ywz1850, ywz1851, ywz1852, ywz1853, ywz18540, ywz18550, be)
new_mkBalBranch6MkBalBranch41(ywz1023, ywz73, ywz70, ywz71, ywz1022, Pos(Succ(ywz115200)), Neg(ywz11490), h) → new_mkBalBranch6MkBalBranch45(ywz1023, ywz73, ywz70, ywz71, ywz1022, h)
new_splitLT24(ywz447, ywz448, ywz449, ywz450, ywz451, ywz452, Succ(ywz4530), Succ(ywz4540), bg) → new_splitLT24(ywz447, ywz448, ywz449, ywz450, ywz451, ywz452, ywz4530, ywz4540, bg)
new_splitLT40(ywz5000, h) → new_emptyFM(h)
new_splitGT7(EmptyFM, ywz5000, h) → new_emptyFM(h)
new_mkVBalBranch3MkVBalBranch20(ywz630, ywz631, ywz632, ywz633, ywz634, ywz740, ywz741, ywz742, ywz743, ywz744, ywz50, ywz9, True, h) → new_mkBalBranch6MkBalBranch5(ywz634, new_mkVBalBranch5(ywz50, ywz9, ywz740, ywz741, ywz742, ywz743, ywz744, ywz633, h), ywz630, ywz631, ywz634, new_lt(new_ps(new_mkBalBranch6Size_l(ywz634, new_mkVBalBranch5(ywz50, ywz9, ywz740, ywz741, ywz742, ywz743, ywz744, ywz633, h), ywz630, ywz631, h), new_mkBalBranch6Size_r(ywz634, new_mkVBalBranch5(ywz50, ywz9, ywz740, ywz741, ywz742, ywz743, ywz744, ywz633, h), ywz630, ywz631, h)), Pos(Succ(Succ(Zero)))), h)
new_mkBalBranch6MkBalBranch11(ywz1023, ywz730, ywz731, ywz732, ywz733, ywz734, ywz70, ywz71, ywz1022, True, h) → new_mkBranch(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Zero))))))), ywz730, ywz731, ywz733, new_mkBranch(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Zero)))))))), ywz70, ywz71, ywz734, ywz1022, ty_Int, h), ty_Int, h)
new_mkBalBranch6MkBalBranch30(ywz1023, ywz73, ywz70, ywz71, ywz1022, h) → new_mkBalBranch6MkBalBranch31(ywz1023, ywz73, ywz70, ywz71, ywz1022, h)
new_mkVBalBranch3MkVBalBranch10(ywz630, ywz631, ywz632, ywz633, ywz634, ywz740, ywz741, ywz742, ywz743, ywz744, ywz50, ywz9, False, h) → new_mkBranch(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Zero)))))))))))), ywz50, ywz9, Branch(ywz740, ywz741, ywz742, ywz743, ywz744), Branch(ywz630, ywz631, ywz632, ywz633, ywz634), ty_Int, h)
new_addToFM_C14(ywz1368, ywz1369, ywz1370, ywz1371, ywz1372, ywz1373, ywz1374, cd) → Branch(Neg(Succ(ywz1373)), new_addToFM00(ywz1369, ywz1374, cd), ywz1370, ywz1371, ywz1372)
new_splitGT8(EmptyFM, h) → new_emptyFM(h)
new_addToFM_C13(ywz1368, ywz1369, ywz1370, ywz1371, ywz1372, ywz1373, ywz1374, Zero, Succ(ywz13760), cd) → new_addToFM_C14(ywz1368, ywz1369, ywz1370, ywz1371, ywz1372, ywz1373, ywz1374, cd)
new_lt(Pos(Zero), Pos(Succ(ywz83200))) → new_esEs3(Zero, Succ(ywz83200))
new_addToFM_C13(ywz1368, ywz1369, ywz1370, ywz1371, ywz1372, ywz1373, ywz1374, Succ(ywz13750), Succ(ywz13760), cd) → new_addToFM_C13(ywz1368, ywz1369, ywz1370, ywz1371, ywz1372, ywz1373, ywz1374, ywz13750, ywz13760, cd)
new_mkBalBranch6MkBalBranch36(ywz1023, ywz73, ywz70, ywz71, ywz1022, Neg(Succ(ywz119100)), Pos(ywz11900), h) → new_mkBalBranch6MkBalBranch30(ywz1023, ywz73, ywz70, ywz71, ywz1022, h)
new_addToFM_C20(Neg(Succ(ywz74000)), ywz741, ywz742, ywz743, ywz744, Neg(Zero), ywz9, False, h) → new_mkBalBranch0(Succ(ywz74000), ywz741, ywz743, new_addToFM_C4(ywz744, Neg(Zero), ywz9, h), h)
new_mkBalBranch6MkBalBranch41(ywz1023, ywz73, ywz70, ywz71, ywz1022, Neg(Succ(ywz115200)), Neg(ywz11490), h) → new_mkBalBranch6MkBalBranch47(ywz1023, ywz73, ywz70, ywz71, ywz1022, ywz11490, ywz115200, h)
new_addToFM_C20(Neg(Zero), ywz741, ywz742, ywz743, ywz744, Neg(Zero), ywz9, False, h) → Branch(Neg(Zero), new_addToFM00(ywz741, ywz9, h), ywz742, ywz743, ywz744)
new_sizeFM0(Branch(ywz12290, ywz12291, ywz12292, ywz12293, ywz12294), ba, bb) → ywz12292
new_splitLT7(EmptyFM, h) → new_emptyFM(h)
new_lt(Pos(Zero), Neg(Succ(ywz83200))) → new_esEs2
new_splitGT5(EmptyFM, ywz5000, h) → new_emptyFM(h)
new_splitLT30(Neg(ywz400), ywz41, ywz42, Branch(ywz430, ywz431, ywz432, ywz433, ywz434), EmptyFM, Pos(Succ(ywz5000)), h) → new_mkVBalBranch2(ywz400, ywz41, ywz430, ywz431, ywz432, ywz433, ywz434, new_splitLT40(ywz5000, h), h)
new_esEs3(Succ(ywz1055000), Succ(ywz104800)) → new_esEs3(ywz1055000, ywz104800)
new_splitGT30(Pos(ywz400), ywz41, ywz42, ywz43, ywz44, Neg(Succ(ywz5000)), h) → new_mkVBalBranch1(ywz400, ywz41, new_splitGT7(ywz43, ywz5000, h), ywz44, h)
new_lt(Pos(Succ(ywz83700)), Neg(ywz8320)) → new_esEs2
new_splitLT12(ywz1839, ywz1840, ywz1841, ywz1842, ywz1843, ywz1844, ca) → ywz1842
new_lt(Neg(Succ(ywz83700)), Pos(ywz8320)) → new_esEs1
new_addToFM_C20(Pos(ywz7400), ywz741, ywz742, ywz743, ywz744, Neg(Succ(ywz5000)), ywz9, False, h) → Branch(Neg(Succ(ywz5000)), new_addToFM00(ywz741, ywz9, h), ywz742, ywz743, ywz744)
new_splitLT9(EmptyFM, h) → new_emptyFM(h)
new_splitLT13(ywz1848, ywz1849, ywz1850, ywz1851, ywz1852, ywz1853, Zero, Succ(ywz18550), be) → new_splitLT11(ywz1848, ywz1849, ywz1850, ywz1851, ywz1852, ywz1853, be)
new_splitGT24(ywz420, ywz421, ywz422, ywz423, ywz424, ywz425, bc) → new_splitGT13(ywz420, ywz421, ywz422, ywz423, ywz424, ywz425, new_lt(Pos(Succ(ywz425)), Pos(Succ(ywz420))), bc)
new_splitLT23(ywz438, ywz439, ywz440, ywz441, ywz442, ywz443, Succ(ywz4440), Zero, bf) → new_splitLT25(ywz438, ywz439, ywz440, ywz441, ywz442, ywz443, bf)
new_addToFM_C20(Pos(Succ(ywz74000)), ywz741, ywz742, ywz743, ywz744, Neg(Zero), ywz9, False, h) → Branch(Neg(Zero), new_addToFM00(ywz741, ywz9, h), ywz742, ywz743, ywz744)
new_splitGT25(ywz429, ywz430, ywz431, ywz432, ywz433, ywz434, Succ(ywz4350), Zero, bh) → new_splitGT7(ywz433, ywz434, bh)
new_esEs3(Zero, Zero) → new_esEs0
new_splitLT30(Pos(ywz400), ywz41, ywz42, ywz43, ywz44, Neg(Succ(ywz5000)), h) → new_splitLT8(ywz43, ywz5000, h)
new_esEs0 → False
new_primPlusNat2(Succ(ywz243000), Succ(ywz365000)) → Succ(Succ(new_primPlusNat2(ywz243000, ywz365000)))
new_mkBalBranch6MkBalBranch37(ywz1023, ywz73, ywz70, ywz71, ywz1022, ywz119100, Succ(ywz119000), h) → new_mkBalBranch6MkBalBranch33(ywz1023, ywz73, ywz70, ywz71, ywz1022, ywz119100, ywz119000, h)
new_splitLT26(ywz447, ywz448, ywz449, ywz450, ywz451, ywz452, bg) → new_splitLT13(ywz447, ywz448, ywz449, ywz450, ywz451, ywz452, Succ(ywz447), Succ(ywz452), bg)
new_splitGT23(ywz420, ywz421, ywz422, ywz423, ywz424, ywz425, Zero, Zero, bc) → new_splitGT24(ywz420, ywz421, ywz422, ywz423, ywz424, ywz425, bc)
new_splitLT13(ywz1848, ywz1849, ywz1850, ywz1851, ywz1852, ywz1853, Succ(ywz18540), Zero, be) → new_mkVBalBranch4(ywz1848, ywz1849, ywz1851, new_splitLT8(ywz1852, ywz1853, be), be)
new_addToFM_C12(ywz1422, ywz1423, ywz1424, ywz1425, ywz1426, ywz1427, ywz1428, Succ(ywz14290), Zero, bd) → new_mkBalBranch(ywz1422, ywz1423, ywz1425, new_addToFM_C4(ywz1426, Pos(Succ(ywz1427)), ywz1428, bd), bd)
new_addToFM_C0(Branch(ywz150, ywz151, ywz152, ywz153, ywz154), ywz400, ywz41, h) → new_addToFM_C20(ywz150, ywz151, ywz152, ywz153, ywz154, Neg(ywz400), ywz41, new_lt(Neg(ywz400), ywz150), h)
new_mkVBalBranch6(ywz41, Branch(ywz130, ywz131, ywz132, ywz133, ywz134), Branch(ywz440, ywz441, ywz442, ywz443, ywz444), h) → new_mkVBalBranch31(Zero, ywz41, ywz130, ywz131, ywz132, ywz133, ywz134, ywz440, ywz441, ywz442, ywz443, ywz444, h)
new_lt(Pos(Zero), Neg(Zero)) → new_esEs0
new_lt(Neg(Zero), Pos(Zero)) → new_esEs0
new_mkVBalBranch31(ywz400, ywz41, ywz430, ywz431, ywz432, ywz433, ywz434, ywz140, ywz141, ywz142, ywz143, ywz144, h) → new_mkVBalBranch3MkVBalBranch20(ywz140, ywz141, ywz142, ywz143, ywz144, ywz430, ywz431, ywz432, ywz433, ywz434, Neg(ywz400), ywz41, new_lt(new_sr(new_mkVBalBranch3Size_l(ywz140, ywz141, ywz142, ywz143, ywz144, ywz430, ywz431, ywz432, ywz433, ywz434, h)), new_mkVBalBranch3Size_r(ywz140, ywz141, ywz142, ywz143, ywz144, ywz430, ywz431, ywz432, ywz433, ywz434, h)), h)
new_mkBalBranch6MkBalBranch36(ywz1023, ywz73, ywz70, ywz71, ywz1022, Neg(Zero), Pos(Zero), h) → new_mkBalBranch6MkBalBranch35(ywz1023, ywz73, ywz70, ywz71, ywz1022, h)
new_mkBalBranch6MkBalBranch36(ywz1023, ywz73, ywz70, ywz71, ywz1022, Pos(Zero), Neg(Zero), h) → new_mkBalBranch6MkBalBranch35(ywz1023, ywz73, ywz70, ywz71, ywz1022, h)
new_sr(Neg(ywz10560)) → Neg(new_primMulNat(ywz10560))
new_mkVBalBranch7(ywz50, ywz9, EmptyFM, ywz630, ywz631, ywz632, ywz633, ywz634, h) → new_addToFM(ywz630, ywz631, ywz632, ywz633, ywz634, ywz50, ywz9, h)
new_splitLT25(ywz438, ywz439, ywz440, ywz441, ywz442, ywz443, bf) → new_splitLT14(ywz438, ywz439, ywz440, ywz441, ywz442, ywz443, Succ(ywz443), Succ(ywz438), bf)
new_mkBalBranch6MkBalBranch44(ywz1023, ywz73, ywz70, ywz71, ywz1022, Succ(ywz1152000), Succ(ywz1149000), h) → new_mkBalBranch6MkBalBranch44(ywz1023, ywz73, ywz70, ywz71, ywz1022, ywz1152000, ywz1149000, h)
new_addToFM_C20(Neg(Succ(ywz74000)), ywz741, ywz742, ywz743, ywz744, Neg(Succ(ywz5000)), ywz9, False, h) → new_addToFM_C13(ywz74000, ywz741, ywz742, ywz743, ywz744, ywz5000, ywz9, ywz74000, ywz5000, h)
new_mkBalBranch6Size_r(ywz634, ywz1151, ywz630, ywz631, h) → new_sizeFM(ywz634, h)
new_splitLT14(ywz1839, ywz1840, ywz1841, ywz1842, ywz1843, ywz1844, Succ(ywz18450), Succ(ywz18460), ca) → new_splitLT14(ywz1839, ywz1840, ywz1841, ywz1842, ywz1843, ywz1844, ywz18450, ywz18460, ca)
new_mkBalBranch6MkBalBranch44(ywz1023, ywz73, ywz70, ywz71, ywz1022, Succ(ywz1152000), Zero, h) → new_mkBalBranch6MkBalBranch45(ywz1023, ywz73, ywz70, ywz71, ywz1022, h)
new_primMulNat1(Zero) → Zero
new_mkVBalBranch2(ywz400, ywz41, ywz430, ywz431, ywz432, ywz433, ywz434, Branch(ywz140, ywz141, ywz142, ywz143, ywz144), h) → new_mkVBalBranch31(ywz400, ywz41, ywz430, ywz431, ywz432, ywz433, ywz434, ywz140, ywz141, ywz142, ywz143, ywz144, h)
new_mkVBalBranch1(ywz400, ywz41, Branch(ywz120, ywz121, ywz122, ywz123, ywz124), EmptyFM, h) → new_addToFM1(Branch(ywz120, ywz121, ywz122, ywz123, ywz124), ywz400, ywz41, h)
new_mkBalBranch6MkBalBranch34(ywz1023, EmptyFM, ywz70, ywz71, ywz1022, h) → error([])
new_mkBalBranch6MkBalBranch5(ywz1023, ywz73, ywz70, ywz71, ywz1022, False, h) → new_mkBalBranch6MkBalBranch40(ywz1023, ywz73, ywz70, ywz71, ywz1022, new_sr(new_mkBalBranch6Size_l(ywz1023, ywz73, ywz70, ywz71, h)), h)
new_splitLT30(Neg(Succ(ywz4000)), ywz41, ywz42, ywz43, ywz44, Neg(Zero), h) → new_mkVBalBranch4(ywz4000, ywz41, ywz43, new_splitLT9(ywz44, h), h)
new_primPlusNat1 → Zero
new_mkBalBranch0(ywz7400, ywz741, ywz743, ywz1234, h) → new_mkBalBranch6MkBalBranch5(ywz1234, ywz743, Neg(ywz7400), ywz741, ywz1234, new_lt(new_ps(new_mkBalBranch6Size_l(ywz1234, ywz743, Neg(ywz7400), ywz741, h), new_mkBalBranch6Size_r(ywz1234, ywz743, Neg(ywz7400), ywz741, h)), Pos(Succ(Succ(Zero)))), h)
new_mkBalBranch6MkBalBranch36(ywz1023, ywz73, ywz70, ywz71, ywz1022, Pos(Zero), Pos(Succ(ywz119000)), h) → new_mkBalBranch6MkBalBranch32(ywz1023, ywz73, ywz70, ywz71, ywz1022, Zero, ywz119000, h)
new_addToFM_C12(ywz1422, ywz1423, ywz1424, ywz1425, ywz1426, ywz1427, ywz1428, Zero, Zero, bd) → new_addToFM_C11(ywz1422, ywz1423, ywz1424, ywz1425, ywz1426, ywz1427, ywz1428, bd)
new_splitGT30(Pos(Zero), ywz41, ywz42, ywz43, ywz44, Neg(Zero), h) → ywz44
new_splitGT30(Neg(Zero), ywz41, ywz42, ywz43, ywz44, Pos(Zero), h) → ywz44
new_sr(Pos(ywz10560)) → Pos(new_primMulNat(ywz10560))
new_mkVBalBranch30(ywz50, ywz9, ywz740, ywz741, ywz742, ywz743, ywz744, ywz6330, ywz6331, ywz6332, ywz6333, ywz6334, h) → new_mkVBalBranch3MkVBalBranch20(ywz6330, ywz6331, ywz6332, ywz6333, ywz6334, ywz740, ywz741, ywz742, ywz743, ywz744, ywz50, ywz9, new_lt(new_sr(new_mkVBalBranch3Size_l(ywz6330, ywz6331, ywz6332, ywz6333, ywz6334, ywz740, ywz741, ywz742, ywz743, ywz744, h)), new_mkVBalBranch3Size_r(ywz6330, ywz6331, ywz6332, ywz6333, ywz6334, ywz740, ywz741, ywz742, ywz743, ywz744, h)), h)
new_esEs3(Succ(ywz1055000), Zero) → new_esEs2
new_mkBalBranch(ywz1422, ywz1423, ywz1425, ywz1444, bd) → new_mkBalBranch6MkBalBranch5(ywz1444, ywz1425, Pos(Succ(ywz1422)), ywz1423, ywz1444, new_lt(new_ps(new_mkBalBranch6Size_l(ywz1444, ywz1425, Pos(Succ(ywz1422)), ywz1423, bd), new_mkBalBranch6Size_r(ywz1444, ywz1425, Pos(Succ(ywz1422)), ywz1423, bd)), Pos(Succ(Succ(Zero)))), bd)
new_splitLT7(Branch(ywz430, ywz431, ywz432, ywz433, ywz434), h) → new_splitLT30(ywz430, ywz431, ywz432, ywz433, ywz434, Pos(Zero), h)
new_splitGT25(ywz429, ywz430, ywz431, ywz432, ywz433, ywz434, Zero, Succ(ywz4360), bh) → new_splitGT26(ywz429, ywz430, ywz431, ywz432, ywz433, ywz434, bh)
new_mkBalBranch6MkBalBranch01(ywz1023, ywz73, ywz70, ywz71, ywz10220, ywz10221, ywz10222, ywz10223, ywz10224, True, h) → new_mkBranch(Succ(Succ(Zero)), ywz10220, ywz10221, new_mkBranch(Succ(Succ(Succ(Zero))), ywz70, ywz71, ywz73, ywz10223, ty_Int, h), ywz10224, ty_Int, h)
new_sizeFM0(EmptyFM, ba, bb) → Pos(Zero)
new_splitLT9(Branch(ywz430, ywz431, ywz432, ywz433, ywz434), h) → new_splitLT30(ywz430, ywz431, ywz432, ywz433, ywz434, Neg(Zero), h)
new_lt(Neg(Zero), Neg(Zero)) → new_esEs0
new_mkVBalBranch1(ywz400, ywz41, Branch(ywz120, ywz121, ywz122, ywz123, ywz124), Branch(ywz440, ywz441, ywz442, ywz443, ywz444), h) → new_mkVBalBranch3MkVBalBranch20(ywz440, ywz441, ywz442, ywz443, ywz444, ywz120, ywz121, ywz122, ywz123, ywz124, Pos(ywz400), ywz41, new_lt(new_sr(new_mkVBalBranch3Size_l(ywz440, ywz441, ywz442, ywz443, ywz444, ywz120, ywz121, ywz122, ywz123, ywz124, h)), new_mkVBalBranch3Size_r(ywz440, ywz441, ywz442, ywz443, ywz444, ywz120, ywz121, ywz122, ywz123, ywz124, h)), h)
new_sizeFM(EmptyFM, h) → Pos(Zero)
new_addToFM_C12(ywz1422, ywz1423, ywz1424, ywz1425, ywz1426, ywz1427, ywz1428, Zero, Succ(ywz14300), bd) → new_addToFM_C11(ywz1422, ywz1423, ywz1424, ywz1425, ywz1426, ywz1427, ywz1428, bd)
new_mkBalBranch6MkBalBranch01(ywz1023, ywz73, ywz70, ywz71, ywz10220, ywz10221, ywz10222, Branch(ywz102230, ywz102231, ywz102232, ywz102233, ywz102234), ywz10224, False, h) → new_mkBranch(Succ(Succ(Succ(Succ(Zero)))), ywz102230, ywz102231, new_mkBranch(Succ(Succ(Succ(Succ(Succ(Zero))))), ywz70, ywz71, ywz73, ywz102233, ty_Int, h), new_mkBranch(Succ(Succ(Succ(Succ(Succ(Succ(Zero)))))), ywz10220, ywz10221, ywz102234, ywz10224, ty_Int, h), ty_Int, h)
new_mkBalBranch6MkBalBranch31(ywz1023, ywz73, ywz70, ywz71, ywz1022, h) → new_mkBranch(Succ(Zero), ywz70, ywz71, ywz73, ywz1022, ty_Int, h)
new_primMinusNat0(Zero, Zero) → Pos(Zero)
new_mkBalBranch6MkBalBranch43(ywz1023, ywz73, ywz70, ywz71, ywz1022, h) → new_mkBalBranch6MkBalBranch36(ywz1023, ywz73, ywz70, ywz71, ywz1022, new_mkBalBranch6Size_l(ywz1023, ywz73, ywz70, ywz71, h), new_sr(new_mkBalBranch6Size_r(ywz1023, ywz73, ywz70, ywz71, h)), h)
new_splitGT5(Branch(ywz440, ywz441, ywz442, ywz443, ywz444), ywz5000, h) → new_splitGT30(ywz440, ywz441, ywz442, ywz443, ywz444, Pos(Succ(ywz5000)), h)
new_splitGT30(Neg(ywz400), ywz41, ywz42, ywz43, ywz44, Pos(Succ(ywz5000)), h) → new_splitGT5(ywz44, ywz5000, h)
new_mkBalBranch6Size_l(ywz634, ywz1150, ywz630, ywz631, h) → new_sizeFM(ywz1150, h)
new_primPlusNat5(Zero) → Succ(new_primPlusNat2(new_primPlusNat2(Succ(Succ(Zero)), Succ(Succ(Zero))), Succ(Zero)))
new_sr0(Pos(ywz12160)) → Pos(new_primMulNat1(ywz12160))
new_addToFM_C13(ywz1368, ywz1369, ywz1370, ywz1371, ywz1372, ywz1373, ywz1374, Zero, Zero, cd) → new_addToFM_C14(ywz1368, ywz1369, ywz1370, ywz1371, ywz1372, ywz1373, ywz1374, cd)
new_mkBalBranch6MkBalBranch41(ywz1023, ywz73, ywz70, ywz71, ywz1022, Neg(Zero), Neg(Succ(ywz114900)), h) → new_mkBalBranch6MkBalBranch48(ywz1023, ywz73, ywz70, ywz71, ywz1022, ywz114900, Zero, h)
new_mkBalBranch6MkBalBranch48(ywz1023, ywz73, ywz70, ywz71, ywz1022, ywz115200, Succ(ywz114900), h) → new_mkBalBranch6MkBalBranch44(ywz1023, ywz73, ywz70, ywz71, ywz1022, ywz115200, ywz114900, h)
new_addToFM_C0(EmptyFM, ywz400, ywz41, h) → Branch(Neg(ywz400), ywz41, Pos(Succ(Zero)), new_emptyFM(h), new_emptyFM(h))
new_splitGT30(Neg(Succ(ywz4000)), ywz41, ywz42, ywz43, ywz44, Neg(Zero), h) → new_splitGT8(ywz44, h)
new_splitLT23(ywz438, ywz439, ywz440, ywz441, ywz442, ywz443, Zero, Succ(ywz4450), bf) → new_splitLT6(ywz441, ywz443, bf)
new_splitGT13(ywz1819, ywz1820, ywz1821, ywz1822, ywz1823, ywz1824, True, cb) → new_mkVBalBranch1(Succ(ywz1819), ywz1820, new_splitGT5(ywz1822, ywz1824, cb), ywz1823, cb)
new_sizeFM(Branch(ywz630, ywz631, ywz632, ywz633, ywz634), h) → ywz632
new_splitLT14(ywz1839, ywz1840, ywz1841, ywz1842, ywz1843, ywz1844, Zero, Zero, ca) → new_splitLT12(ywz1839, ywz1840, ywz1841, ywz1842, ywz1843, ywz1844, ca)
new_primPlusNat5(Succ(ywz7200000)) → Succ(Succ(new_primPlusNat2(new_primPlusNat2(new_primPlusNat2(Succ(Succ(Succ(ywz7200000))), Succ(Succ(Succ(ywz7200000)))), Succ(Succ(ywz7200000))), ywz7200000)))
new_splitGT30(Pos(Zero), ywz41, ywz42, ywz43, ywz44, Pos(Succ(ywz5000)), h) → new_splitGT5(ywz44, ywz5000, h)
new_mkBalBranch6MkBalBranch5(ywz1023, ywz73, ywz70, ywz71, ywz1022, True, h) → new_mkBranch(Zero, ywz70, ywz71, ywz73, ywz1022, ty_Int, h)
new_splitGT30(Pos(Succ(ywz4000)), ywz41, ywz42, ywz43, ywz44, Neg(Zero), h) → new_mkVBalBranch1(Succ(ywz4000), ywz41, new_splitGT8(ywz43, h), ywz44, h)
new_splitGT25(ywz429, ywz430, ywz431, ywz432, ywz433, ywz434, Zero, Zero, bh) → new_splitGT26(ywz429, ywz430, ywz431, ywz432, ywz433, ywz434, bh)
new_mkBalBranch6MkBalBranch34(ywz1023, Branch(ywz730, ywz731, ywz732, ywz733, ywz734), ywz70, ywz71, ywz1022, h) → new_mkBalBranch6MkBalBranch11(ywz1023, ywz730, ywz731, ywz732, ywz733, ywz734, ywz70, ywz71, ywz1022, new_lt(new_sizeFM(ywz734, h), new_sr0(new_sizeFM(ywz733, h))), h)
new_splitGT25(ywz429, ywz430, ywz431, ywz432, ywz433, ywz434, Succ(ywz4350), Succ(ywz4360), bh) → new_splitGT25(ywz429, ywz430, ywz431, ywz432, ywz433, ywz434, ywz4350, ywz4360, bh)
new_splitGT30(Neg(Succ(ywz4000)), ywz41, ywz42, ywz43, ywz44, Neg(Succ(ywz5000)), h) → new_splitGT25(ywz4000, ywz41, ywz42, ywz43, ywz44, ywz5000, ywz4000, ywz5000, h)
new_mkVBalBranch6(ywz41, EmptyFM, ywz44, h) → new_addToFM_C0(ywz44, Zero, ywz41, h)
new_addToFM_C4(Branch(ywz7430, ywz7431, ywz7432, ywz7433, ywz7434), ywz50, ywz9, h) → new_addToFM_C30(ywz7430, ywz7431, ywz7432, ywz7433, ywz7434, ywz50, ywz9, h)
new_mkBalBranch6MkBalBranch41(ywz1023, ywz73, ywz70, ywz71, ywz1022, Neg(Zero), Pos(Succ(ywz114900)), h) → new_mkBalBranch6MkBalBranch46(ywz1023, ywz73, ywz70, ywz71, ywz1022, h)
new_mkVBalBranch7(ywz50, ywz9, Branch(ywz7440, ywz7441, ywz7442, ywz7443, ywz7444), ywz630, ywz631, ywz632, ywz633, ywz634, h) → new_mkVBalBranch30(ywz50, ywz9, ywz7440, ywz7441, ywz7442, ywz7443, ywz7444, ywz630, ywz631, ywz632, ywz633, ywz634, h)
new_splitLT30(Pos(Zero), ywz41, ywz42, ywz43, ywz44, Pos(Zero), h) → ywz43
new_mkBalBranch6MkBalBranch44(ywz1023, ywz73, ywz70, ywz71, ywz1022, Zero, Zero, h) → new_mkBalBranch6MkBalBranch42(ywz1023, ywz73, ywz70, ywz71, ywz1022, h)
new_addToFM_C20(ywz740, ywz741, ywz742, ywz743, ywz744, ywz50, ywz9, True, h) → new_mkBalBranch6MkBalBranch5(ywz744, new_addToFM_C4(ywz743, ywz50, ywz9, h), ywz740, ywz741, ywz744, new_lt(new_ps(new_mkBalBranch6Size_l(ywz744, new_addToFM_C4(ywz743, ywz50, ywz9, h), ywz740, ywz741, h), new_mkBalBranch6Size_r(ywz744, new_addToFM_C4(ywz743, ywz50, ywz9, h), ywz740, ywz741, h)), Pos(Succ(Succ(Zero)))), h)
new_mkVBalBranch3MkVBalBranch20(ywz630, ywz631, ywz632, ywz633, ywz634, ywz740, ywz741, ywz742, ywz743, ywz744, ywz50, ywz9, False, h) → new_mkVBalBranch3MkVBalBranch10(ywz630, ywz631, ywz632, ywz633, ywz634, ywz740, ywz741, ywz742, ywz743, ywz744, ywz50, ywz9, new_lt(new_sr(new_mkVBalBranch3Size_r(ywz630, ywz631, ywz632, ywz633, ywz634, ywz740, ywz741, ywz742, ywz743, ywz744, h)), new_mkVBalBranch3Size_l(ywz630, ywz631, ywz632, ywz633, ywz634, ywz740, ywz741, ywz742, ywz743, ywz744, h)), h)
new_mkBalBranch6MkBalBranch47(ywz1023, ywz73, ywz70, ywz71, ywz1022, Succ(ywz114900), ywz115200, h) → new_mkBalBranch6MkBalBranch44(ywz1023, ywz73, ywz70, ywz71, ywz1022, ywz114900, ywz115200, h)
new_mkBalBranch6MkBalBranch41(ywz1023, ywz73, ywz70, ywz71, ywz1022, Pos(Zero), Pos(Zero), h) → new_mkBalBranch6MkBalBranch42(ywz1023, ywz73, ywz70, ywz71, ywz1022, h)
new_mkBalBranch6MkBalBranch32(ywz1023, ywz73, ywz70, ywz71, ywz1022, Zero, ywz119100, h) → new_mkBalBranch6MkBalBranch30(ywz1023, ywz73, ywz70, ywz71, ywz1022, h)
new_mkBalBranch6MkBalBranch35(ywz1023, ywz73, ywz70, ywz71, ywz1022, h) → new_mkBalBranch6MkBalBranch31(ywz1023, ywz73, ywz70, ywz71, ywz1022, h)
new_splitLT8(Branch(ywz430, ywz431, ywz432, ywz433, ywz434), ywz5000, h) → new_splitLT30(ywz430, ywz431, ywz432, ywz433, ywz434, Neg(Succ(ywz5000)), h)
new_addToFM_C20(Neg(Succ(ywz74000)), ywz741, ywz742, ywz743, ywz744, Pos(Zero), ywz9, False, h) → new_mkBalBranch0(Succ(ywz74000), ywz741, ywz743, new_addToFM_C4(ywz744, Pos(Zero), ywz9, h), h)
new_addToFM_C20(Neg(Zero), ywz741, ywz742, ywz743, ywz744, Pos(Zero), ywz9, False, h) → Branch(Pos(Zero), new_addToFM00(ywz741, ywz9, h), ywz742, ywz743, ywz744)
new_mkBranch(ywz1225, ywz1226, ywz1227, ywz1228, ywz1229, ba, bb) → Branch(ywz1226, ywz1227, new_mkBranchUnbox(ywz1229, ywz1226, ywz1228, new_ps(new_ps(Pos(Succ(Zero)), new_sizeFM0(ywz1228, ba, bb)), new_sizeFM0(ywz1229, ba, bb)), ba, bb), ywz1228, ywz1229)
new_addToFM_C4(EmptyFM, ywz50, ywz9, h) → Branch(ywz50, ywz9, Pos(Succ(Zero)), new_emptyFM(h), new_emptyFM(h))
new_splitLT30(Neg(ywz400), ywz41, ywz42, EmptyFM, ywz44, Pos(Succ(ywz5000)), h) → new_addToFM_C0(new_splitLT6(ywz44, ywz5000, h), ywz400, ywz41, h)
new_emptyFM(h) → EmptyFM
new_splitLT24(ywz447, ywz448, ywz449, ywz450, ywz451, ywz452, Zero, Zero, bg) → new_splitLT26(ywz447, ywz448, ywz449, ywz450, ywz451, ywz452, bg)
new_mkBalBranch6MkBalBranch41(ywz1023, ywz73, ywz70, ywz71, ywz1022, Pos(Zero), Neg(Succ(ywz114900)), h) → new_mkBalBranch6MkBalBranch45(ywz1023, ywz73, ywz70, ywz71, ywz1022, h)
new_splitGT6(Branch(ywz440, ywz441, ywz442, ywz443, ywz444), h) → new_splitGT30(ywz440, ywz441, ywz442, ywz443, ywz444, Pos(Zero), h)
new_mkBalBranch6MkBalBranch33(ywz1023, ywz73, ywz70, ywz71, ywz1022, Zero, Succ(ywz1190000), h) → new_mkBalBranch6MkBalBranch30(ywz1023, ywz73, ywz70, ywz71, ywz1022, h)
new_primMulNat0(ywz7200) → Succ(Succ(new_primPlusNat3(ywz7200)))
new_esEs3(Zero, Succ(ywz104800)) → new_esEs1
new_splitLT13(ywz1848, ywz1849, ywz1850, ywz1851, ywz1852, ywz1853, Zero, Zero, be) → new_splitLT11(ywz1848, ywz1849, ywz1850, ywz1851, ywz1852, ywz1853, be)
new_addToFM_C13(ywz1368, ywz1369, ywz1370, ywz1371, ywz1372, ywz1373, ywz1374, Succ(ywz13750), Zero, cd) → new_mkBalBranch0(Succ(ywz1368), ywz1369, ywz1371, new_addToFM_C4(ywz1372, Neg(Succ(ywz1373)), ywz1374, cd), cd)
new_mkBalBranch6MkBalBranch41(ywz1023, ywz73, ywz70, ywz71, ywz1022, Pos(Zero), Pos(Succ(ywz114900)), h) → new_mkBalBranch6MkBalBranch47(ywz1023, ywz73, ywz70, ywz71, ywz1022, Zero, ywz114900, h)
new_mkVBalBranch3Size_r(ywz60, ywz61, ywz62, ywz63, ywz64, ywz70, ywz71, ywz72, ywz73, ywz74, h) → new_sizeFM(Branch(ywz60, ywz61, ywz62, ywz63, ywz64), h)
new_primPlusNat3(Zero) → Succ(Succ(new_primPlusNat1))
new_lt(Neg(Zero), Pos(Succ(ywz83200))) → new_esEs1
new_splitGT23(ywz420, ywz421, ywz422, ywz423, ywz424, ywz425, Zero, Succ(ywz4270), bc) → new_splitGT24(ywz420, ywz421, ywz422, ywz423, ywz424, ywz425, bc)
new_ps(Neg(ywz11210), Neg(ywz11190)) → Neg(new_primPlusNat2(ywz11210, ywz11190))
new_splitLT30(Neg(Zero), ywz41, ywz42, ywz43, ywz44, Neg(Zero), h) → ywz43
new_splitLT23(ywz438, ywz439, ywz440, ywz441, ywz442, ywz443, Zero, Zero, bf) → new_splitLT25(ywz438, ywz439, ywz440, ywz441, ywz442, ywz443, bf)
new_mkBalBranch6MkBalBranch41(ywz1023, ywz73, ywz70, ywz71, ywz1022, Neg(Zero), Neg(Zero), h) → new_mkBalBranch6MkBalBranch42(ywz1023, ywz73, ywz70, ywz71, ywz1022, h)
new_esEs1 → True
new_mkBalBranch6MkBalBranch47(ywz1023, ywz73, ywz70, ywz71, ywz1022, Zero, ywz115200, h) → new_mkBalBranch6MkBalBranch46(ywz1023, ywz73, ywz70, ywz71, ywz1022, h)
new_mkVBalBranch40(ywz400, ywz41, ywz430, ywz431, ywz432, ywz433, ywz434, h) → new_addToFM_C0(Branch(ywz430, ywz431, ywz432, ywz433, ywz434), ywz400, ywz41, h)
new_splitGT26(ywz429, ywz430, ywz431, ywz432, ywz433, ywz434, bh) → new_splitGT12(ywz429, ywz430, ywz431, ywz432, ywz433, ywz434, new_lt(Neg(Succ(ywz434)), Neg(Succ(ywz429))), bh)
new_lt(Pos(Zero), Pos(Zero)) → new_esEs0
new_splitLT24(ywz447, ywz448, ywz449, ywz450, ywz451, ywz452, Zero, Succ(ywz4540), bg) → new_splitLT8(ywz450, ywz452, bg)
new_addToFM1(ywz44, ywz400, ywz41, h) → new_addToFM_C5(ywz44, ywz400, ywz41, h)
new_splitLT30(Neg(Succ(ywz4000)), ywz41, ywz42, ywz43, ywz44, Pos(Zero), h) → new_mkVBalBranch4(ywz4000, ywz41, ywz43, new_splitLT7(ywz44, h), h)
new_esEs2 → False
new_mkBranchUnbox(ywz1229, ywz1226, ywz1228, ywz1236, ba, bb) → ywz1236
new_mkVBalBranch4(ywz4000, ywz41, EmptyFM, ywz11, h) → new_addToFM0(ywz11, ywz4000, ywz41, h)
new_addToFM0(ywz11, ywz4000, ywz41, h) → new_addToFM_C0(ywz11, Succ(ywz4000), ywz41, h)
new_mkBalBranch6MkBalBranch36(ywz1023, ywz73, ywz70, ywz71, ywz1022, Pos(Succ(ywz119100)), Neg(ywz11900), h) → new_mkBalBranch6MkBalBranch34(ywz1023, ywz73, ywz70, ywz71, ywz1022, h)
new_splitGT30(Pos(Zero), ywz41, ywz42, ywz43, ywz44, Pos(Zero), h) → ywz44
new_mkBalBranch6MkBalBranch41(ywz1023, ywz73, ywz70, ywz71, ywz1022, Pos(Succ(ywz115200)), Pos(ywz11490), h) → new_mkBalBranch6MkBalBranch48(ywz1023, ywz73, ywz70, ywz71, ywz1022, ywz115200, ywz11490, h)
new_primPlusNat4(Zero) → Succ(Succ(new_primPlusNat0(new_primPlusNat1)))
new_splitGT8(Branch(ywz440, ywz441, ywz442, ywz443, ywz444), h) → new_splitGT30(ywz440, ywz441, ywz442, ywz443, ywz444, Neg(Zero), h)
new_mkBalBranch6MkBalBranch01(ywz1023, ywz73, ywz70, ywz71, ywz10220, ywz10221, ywz10222, EmptyFM, ywz10224, False, h) → error([])
new_mkVBalBranch5(ywz50, ywz9, ywz740, ywz741, ywz742, ywz743, ywz744, EmptyFM, h) → new_addToFM(ywz740, ywz741, ywz742, ywz743, ywz744, ywz50, ywz9, h)
new_splitLT8(EmptyFM, ywz5000, h) → new_emptyFM(h)
new_primPlusNat2(Succ(ywz243000), Zero) → Succ(ywz243000)
new_primPlusNat2(Zero, Succ(ywz365000)) → Succ(ywz365000)
new_mkBalBranch6MkBalBranch45(ywz1023, ywz73, ywz70, ywz71, EmptyFM, h) → error([])
new_mkBalBranch6MkBalBranch41(ywz1023, ywz73, ywz70, ywz71, ywz1022, Neg(Succ(ywz115200)), Pos(ywz11490), h) → new_mkBalBranch6MkBalBranch46(ywz1023, ywz73, ywz70, ywz71, ywz1022, h)
new_mkBalBranch1(ywz741, ywz743, ywz1238, h) → new_mkBalBranch6MkBalBranch5(ywz1238, ywz743, Pos(Zero), ywz741, ywz1238, new_lt(new_ps(new_mkBalBranch6Size_l(ywz1238, ywz743, Pos(Zero), ywz741, h), new_mkBalBranch6Size_r(ywz1238, ywz743, Pos(Zero), ywz741, h)), Pos(Succ(Succ(Zero)))), h)
new_splitLT24(ywz447, ywz448, ywz449, ywz450, ywz451, ywz452, Succ(ywz4530), Zero, bg) → new_splitLT26(ywz447, ywz448, ywz449, ywz450, ywz451, ywz452, bg)
new_primMinusNat0(Zero, Succ(ywz111900)) → Neg(Succ(ywz111900))
new_splitLT30(Neg(Succ(ywz4000)), ywz41, ywz42, ywz43, ywz44, Neg(Succ(ywz5000)), h) → new_splitLT24(ywz4000, ywz41, ywz42, ywz43, ywz44, ywz5000, ywz4000, ywz5000, h)
new_mkVBalBranch4(ywz4000, ywz41, Branch(ywz430, ywz431, ywz432, ywz433, ywz434), EmptyFM, h) → new_addToFM0(Branch(ywz430, ywz431, ywz432, ywz433, ywz434), ywz4000, ywz41, h)
new_addToFM_C5(Branch(ywz440, ywz441, ywz442, ywz443, ywz444), ywz400, ywz41, h) → new_addToFM_C20(ywz440, ywz441, ywz442, ywz443, ywz444, Pos(ywz400), ywz41, new_lt(Pos(ywz400), ywz440), h)
new_lt(Neg(Zero), Neg(Succ(ywz83200))) → new_esEs3(Succ(ywz83200), Zero)
new_addToFM_C20(Neg(Zero), ywz741, ywz742, ywz743, ywz744, Neg(Succ(ywz5000)), ywz9, False, h) → Branch(Neg(Succ(ywz5000)), new_addToFM00(ywz741, ywz9, h), ywz742, ywz743, ywz744)
new_mkBalBranch6MkBalBranch48(ywz1023, ywz73, ywz70, ywz71, ywz1022, ywz115200, Zero, h) → new_mkBalBranch6MkBalBranch45(ywz1023, ywz73, ywz70, ywz71, ywz1022, h)
new_lt(Neg(Succ(ywz83700)), Neg(ywz8320)) → new_esEs3(ywz8320, Succ(ywz83700))
new_splitGT30(Pos(Succ(ywz4000)), ywz41, ywz42, ywz43, ywz44, Pos(Zero), h) → new_mkVBalBranch1(Succ(ywz4000), ywz41, new_splitGT6(ywz43, h), ywz44, h)
new_primPlusNat2(Zero, Zero) → Zero
new_mkVBalBranch1(ywz400, ywz41, EmptyFM, ywz44, h) → new_addToFM1(ywz44, ywz400, ywz41, h)
new_addToFM_C20(Pos(Zero), ywz741, ywz742, ywz743, ywz744, Pos(Succ(ywz5000)), ywz9, False, h) → new_mkBalBranch1(ywz741, ywz743, new_addToFM_C4(ywz744, Pos(Succ(ywz5000)), ywz9, h), h)
new_splitLT30(Neg(Zero), ywz41, ywz42, ywz43, ywz44, Neg(Succ(ywz5000)), h) → new_splitLT8(ywz43, ywz5000, h)
new_addToFM_C20(Neg(ywz7400), ywz741, ywz742, ywz743, ywz744, Pos(Succ(ywz5000)), ywz9, False, h) → new_mkBalBranch0(ywz7400, ywz741, ywz743, new_addToFM_C4(ywz744, Pos(Succ(ywz5000)), ywz9, h), h)
new_splitLT30(Pos(Succ(ywz4000)), ywz41, ywz42, ywz43, ywz44, Neg(Zero), h) → new_splitLT9(ywz43, h)
new_addToFM_C12(ywz1422, ywz1423, ywz1424, ywz1425, ywz1426, ywz1427, ywz1428, Succ(ywz14290), Succ(ywz14300), bd) → new_addToFM_C12(ywz1422, ywz1423, ywz1424, ywz1425, ywz1426, ywz1427, ywz1428, ywz14290, ywz14300, bd)
new_ps(Neg(ywz11210), Pos(ywz11190)) → new_primMinusNat0(ywz11190, ywz11210)
new_ps(Pos(ywz11210), Neg(ywz11190)) → new_primMinusNat0(ywz11210, ywz11190)
new_mkVBalBranch3MkVBalBranch10(ywz630, ywz631, ywz632, ywz633, ywz634, ywz740, ywz741, ywz742, ywz743, ywz744, ywz50, ywz9, True, h) → new_mkBalBranch6MkBalBranch5(new_mkVBalBranch7(ywz50, ywz9, ywz744, ywz630, ywz631, ywz632, ywz633, ywz634, h), ywz743, ywz740, ywz741, new_mkVBalBranch7(ywz50, ywz9, ywz744, ywz630, ywz631, ywz632, ywz633, ywz634, h), new_lt(new_ps(new_mkBalBranch6Size_l(new_mkVBalBranch7(ywz50, ywz9, ywz744, ywz630, ywz631, ywz632, ywz633, ywz634, h), ywz743, ywz740, ywz741, h), new_mkBalBranch6Size_r(new_mkVBalBranch7(ywz50, ywz9, ywz744, ywz630, ywz631, ywz632, ywz633, ywz634, h), ywz743, ywz740, ywz741, h)), Pos(Succ(Succ(Zero)))), h)
new_addToFM_C20(Pos(Succ(ywz74000)), ywz741, ywz742, ywz743, ywz744, Pos(Zero), ywz9, False, h) → Branch(Pos(Zero), new_addToFM00(ywz741, ywz9, h), ywz742, ywz743, ywz744)
new_splitLT11(ywz1848, ywz1849, ywz1850, ywz1851, ywz1852, ywz1853, be) → ywz1851
new_mkBalBranch6MkBalBranch40(ywz1023, ywz73, ywz70, ywz71, ywz1022, ywz1149, h) → new_mkBalBranch6MkBalBranch41(ywz1023, ywz73, ywz70, ywz71, ywz1022, new_mkBalBranch6Size_r(ywz1023, ywz73, ywz70, ywz71, h), ywz1149, h)
new_mkBalBranch6MkBalBranch33(ywz1023, ywz73, ywz70, ywz71, ywz1022, Zero, Zero, h) → new_mkBalBranch6MkBalBranch35(ywz1023, ywz73, ywz70, ywz71, ywz1022, h)
new_addToFM_C11(ywz1422, ywz1423, ywz1424, ywz1425, ywz1426, ywz1427, ywz1428, bd) → Branch(Pos(Succ(ywz1427)), new_addToFM00(ywz1423, ywz1428, bd), ywz1424, ywz1425, ywz1426)
new_splitGT30(Neg(Zero), ywz41, ywz42, ywz43, ywz44, Neg(Succ(ywz5000)), h) → new_mkVBalBranch6(ywz41, new_splitGT7(ywz43, ywz5000, h), ywz44, h)
new_mkBalBranch6MkBalBranch33(ywz1023, ywz73, ywz70, ywz71, ywz1022, Succ(ywz1191000), Succ(ywz1190000), h) → new_mkBalBranch6MkBalBranch33(ywz1023, ywz73, ywz70, ywz71, ywz1022, ywz1191000, ywz1190000, h)
new_addToFM00(ywz741, ywz9, h) → ywz9
new_mkBalBranch6MkBalBranch11(ywz1023, ywz730, ywz731, ywz732, ywz733, EmptyFM, ywz70, ywz71, ywz1022, False, h) → error([])
new_splitLT30(Pos(Zero), ywz41, ywz42, ywz43, ywz44, Pos(Succ(ywz5000)), h) → new_mkVBalBranch1(Zero, ywz41, ywz43, new_splitLT6(ywz44, ywz5000, h), h)
new_mkBalBranch6MkBalBranch36(ywz1023, ywz73, ywz70, ywz71, ywz1022, Neg(Succ(ywz119100)), Neg(ywz11900), h) → new_mkBalBranch6MkBalBranch32(ywz1023, ywz73, ywz70, ywz71, ywz1022, ywz11900, ywz119100, h)
new_mkVBalBranch5(ywz50, ywz9, ywz740, ywz741, ywz742, ywz743, ywz744, Branch(ywz6330, ywz6331, ywz6332, ywz6333, ywz6334), h) → new_mkVBalBranch30(ywz50, ywz9, ywz740, ywz741, ywz742, ywz743, ywz744, ywz6330, ywz6331, ywz6332, ywz6333, ywz6334, h)
new_splitLT14(ywz1839, ywz1840, ywz1841, ywz1842, ywz1843, ywz1844, Succ(ywz18450), Zero, ca) → new_mkVBalBranch1(Succ(ywz1839), ywz1840, ywz1842, new_splitLT6(ywz1843, ywz1844, ca), ca)
new_splitGT23(ywz420, ywz421, ywz422, ywz423, ywz424, ywz425, Succ(ywz4260), Zero, bc) → new_splitGT5(ywz424, ywz425, bc)
new_mkBalBranch6MkBalBranch41(ywz1023, ywz73, ywz70, ywz71, ywz1022, Neg(Zero), Pos(Zero), h) → new_mkBalBranch6MkBalBranch42(ywz1023, ywz73, ywz70, ywz71, ywz1022, h)
new_mkBalBranch6MkBalBranch41(ywz1023, ywz73, ywz70, ywz71, ywz1022, Pos(Zero), Neg(Zero), h) → new_mkBalBranch6MkBalBranch42(ywz1023, ywz73, ywz70, ywz71, ywz1022, h)
new_splitGT23(ywz420, ywz421, ywz422, ywz423, ywz424, ywz425, Succ(ywz4260), Succ(ywz4270), bc) → new_splitGT23(ywz420, ywz421, ywz422, ywz423, ywz424, ywz425, ywz4260, ywz4270, bc)
new_splitGT30(Neg(Zero), ywz41, ywz42, ywz43, ywz44, Neg(Zero), h) → ywz44
new_mkVBalBranch3Size_l(ywz60, ywz61, ywz62, ywz63, ywz64, ywz70, ywz71, ywz72, ywz73, ywz74, h) → new_sizeFM(Branch(ywz70, ywz71, ywz72, ywz73, ywz74), h)
new_addToFM_C20(Pos(Zero), ywz741, ywz742, ywz743, ywz744, Pos(Zero), ywz9, False, h) → Branch(Pos(Zero), new_addToFM00(ywz741, ywz9, h), ywz742, ywz743, ywz744)
new_splitLT30(Pos(Succ(ywz4000)), ywz41, ywz42, ywz43, ywz44, Pos(Zero), h) → new_splitLT7(ywz43, h)
new_splitGT12(ywz1829, ywz1830, ywz1831, ywz1832, ywz1833, ywz1834, False, cc) → ywz1833
new_primMinusNat0(Succ(ywz112100), Zero) → Pos(Succ(ywz112100))
new_mkVBalBranch4(ywz4000, ywz41, Branch(ywz430, ywz431, ywz432, ywz433, ywz434), Branch(ywz110, ywz111, ywz112, ywz113, ywz114), h) → new_mkVBalBranch3MkVBalBranch20(ywz110, ywz111, ywz112, ywz113, ywz114, ywz430, ywz431, ywz432, ywz433, ywz434, Neg(Succ(ywz4000)), ywz41, new_lt(new_sr(new_mkVBalBranch3Size_l(ywz110, ywz111, ywz112, ywz113, ywz114, ywz430, ywz431, ywz432, ywz433, ywz434, h)), new_mkVBalBranch3Size_r(ywz110, ywz111, ywz112, ywz113, ywz114, ywz430, ywz431, ywz432, ywz433, ywz434, h)), h)
new_addToFM_C30(ywz740, ywz741, ywz742, ywz743, ywz744, ywz50, ywz9, h) → new_addToFM_C20(ywz740, ywz741, ywz742, ywz743, ywz744, ywz50, ywz9, new_lt(ywz50, ywz740), h)
new_mkBalBranch6MkBalBranch36(ywz1023, ywz73, ywz70, ywz71, ywz1022, Pos(Zero), Neg(Succ(ywz119000)), h) → new_mkBalBranch6MkBalBranch34(ywz1023, ywz73, ywz70, ywz71, ywz1022, h)
new_splitGT30(Pos(Succ(ywz4000)), ywz41, ywz42, ywz43, ywz44, Pos(Succ(ywz5000)), h) → new_splitGT23(ywz4000, ywz41, ywz42, ywz43, ywz44, ywz5000, ywz5000, ywz4000, h)
new_mkBalBranch6MkBalBranch32(ywz1023, ywz73, ywz70, ywz71, ywz1022, Succ(ywz119000), ywz119100, h) → new_mkBalBranch6MkBalBranch33(ywz1023, ywz73, ywz70, ywz71, ywz1022, ywz119000, ywz119100, h)
new_primMulNat1(Succ(ywz121600)) → new_primPlusNat2(new_primPlusNat2(Zero, Succ(ywz121600)), Succ(ywz121600))
new_mkBalBranch6MkBalBranch36(ywz1023, ywz73, ywz70, ywz71, ywz1022, Neg(Zero), Neg(Succ(ywz119000)), h) → new_mkBalBranch6MkBalBranch37(ywz1023, ywz73, ywz70, ywz71, ywz1022, ywz119000, Zero, h)
new_splitLT23(ywz438, ywz439, ywz440, ywz441, ywz442, ywz443, Succ(ywz4440), Succ(ywz4450), bf) → new_splitLT23(ywz438, ywz439, ywz440, ywz441, ywz442, ywz443, ywz4440, ywz4450, bf)
new_addToFM(ywz740, ywz741, ywz742, ywz743, ywz744, ywz50, ywz9, h) → new_addToFM_C30(ywz740, ywz741, ywz742, ywz743, ywz744, ywz50, ywz9, h)
new_mkVBalBranch6(ywz41, Branch(ywz130, ywz131, ywz132, ywz133, ywz134), EmptyFM, h) → new_mkVBalBranch40(Zero, ywz41, ywz130, ywz131, ywz132, ywz133, ywz134, h)
new_mkBalBranch6MkBalBranch44(ywz1023, ywz73, ywz70, ywz71, ywz1022, Zero, Succ(ywz1149000), h) → new_mkBalBranch6MkBalBranch46(ywz1023, ywz73, ywz70, ywz71, ywz1022, h)
new_mkBalBranch6MkBalBranch36(ywz1023, ywz73, ywz70, ywz71, ywz1022, Pos(Succ(ywz119100)), Pos(ywz11900), h) → new_mkBalBranch6MkBalBranch37(ywz1023, ywz73, ywz70, ywz71, ywz1022, ywz119100, ywz11900, h)
new_splitGT7(Branch(ywz430, ywz431, ywz432, ywz433, ywz434), ywz5000, h) → new_splitGT30(ywz430, ywz431, ywz432, ywz433, ywz434, Neg(Succ(ywz5000)), h)
new_mkBalBranch6MkBalBranch42(ywz1023, ywz73, ywz70, ywz71, ywz1022, h) → new_mkBalBranch6MkBalBranch43(ywz1023, ywz73, ywz70, ywz71, ywz1022, h)
new_splitLT6(EmptyFM, ywz5000, h) → new_splitLT40(ywz5000, h)
new_mkBalBranch6MkBalBranch33(ywz1023, ywz73, ywz70, ywz71, ywz1022, Succ(ywz1191000), Zero, h) → new_mkBalBranch6MkBalBranch34(ywz1023, ywz73, ywz70, ywz71, ywz1022, h)
new_splitGT13(ywz1819, ywz1820, ywz1821, ywz1822, ywz1823, ywz1824, False, cb) → ywz1823
new_mkBalBranch6MkBalBranch36(ywz1023, ywz73, ywz70, ywz71, ywz1022, Neg(Zero), Neg(Zero), h) → new_mkBalBranch6MkBalBranch35(ywz1023, ywz73, ywz70, ywz71, ywz1022, h)
new_primPlusNat4(Succ(ywz720000)) → Succ(Succ(new_primPlusNat5(ywz720000)))
new_addToFM_C20(Pos(Succ(ywz74000)), ywz741, ywz742, ywz743, ywz744, Pos(Succ(ywz5000)), ywz9, False, h) → new_addToFM_C12(ywz74000, ywz741, ywz742, ywz743, ywz744, ywz5000, ywz9, ywz5000, ywz74000, h)
new_primMulNat(Succ(ywz105600)) → new_primPlusNat2(new_primMulNat0(ywz105600), Succ(ywz105600))
new_mkVBalBranch2(ywz400, ywz41, ywz430, ywz431, ywz432, ywz433, ywz434, EmptyFM, h) → new_mkVBalBranch40(ywz400, ywz41, ywz430, ywz431, ywz432, ywz433, ywz434, h)
new_sr0(Neg(ywz12160)) → Neg(new_primMulNat1(ywz12160))
new_splitLT14(ywz1839, ywz1840, ywz1841, ywz1842, ywz1843, ywz1844, Zero, Succ(ywz18460), ca) → new_splitLT12(ywz1839, ywz1840, ywz1841, ywz1842, ywz1843, ywz1844, ca)
new_addToFM_C20(Pos(Zero), ywz741, ywz742, ywz743, ywz744, Neg(Zero), ywz9, False, h) → Branch(Neg(Zero), new_addToFM00(ywz741, ywz9, h), ywz742, ywz743, ywz744)
new_lt(Pos(Succ(ywz83700)), Pos(ywz8320)) → new_esEs3(Succ(ywz83700), ywz8320)
new_mkBalBranch6MkBalBranch36(ywz1023, ywz73, ywz70, ywz71, ywz1022, Pos(Zero), Pos(Zero), h) → new_mkBalBranch6MkBalBranch35(ywz1023, ywz73, ywz70, ywz71, ywz1022, h)
new_mkBalBranch6MkBalBranch45(ywz1023, ywz73, ywz70, ywz71, Branch(ywz10220, ywz10221, ywz10222, ywz10223, ywz10224), h) → new_mkBalBranch6MkBalBranch01(ywz1023, ywz73, ywz70, ywz71, ywz10220, ywz10221, ywz10222, ywz10223, ywz10224, new_lt(new_sizeFM(ywz10223, h), new_sr0(new_sizeFM(ywz10224, h))), h)
new_splitLT6(Branch(ywz440, ywz441, ywz442, ywz443, ywz444), ywz5000, h) → new_splitLT30(ywz440, ywz441, ywz442, ywz443, ywz444, Pos(Succ(ywz5000)), h)
new_mkBalBranch6MkBalBranch36(ywz1023, ywz73, ywz70, ywz71, ywz1022, Neg(Zero), Pos(Succ(ywz119000)), h) → new_mkBalBranch6MkBalBranch30(ywz1023, ywz73, ywz70, ywz71, ywz1022, h)
new_addToFM_C5(EmptyFM, ywz400, ywz41, h) → Branch(Pos(ywz400), ywz41, Pos(Succ(Zero)), new_emptyFM(h), new_emptyFM(h))
new_splitLT30(Neg(ywz400), ywz41, ywz42, Branch(ywz430, ywz431, ywz432, ywz433, ywz434), Branch(ywz440, ywz441, ywz442, ywz443, ywz444), Pos(Succ(ywz5000)), h) → new_mkVBalBranch2(ywz400, ywz41, ywz430, ywz431, ywz432, ywz433, ywz434, new_splitLT30(ywz440, ywz441, ywz442, ywz443, ywz444, Pos(Succ(ywz5000)), h), h)
new_primPlusNat3(Succ(ywz72000)) → Succ(Succ(new_primPlusNat4(ywz72000)))
new_mkBalBranch6MkBalBranch37(ywz1023, ywz73, ywz70, ywz71, ywz1022, ywz119100, Zero, h) → new_mkBalBranch6MkBalBranch34(ywz1023, ywz73, ywz70, ywz71, ywz1022, h)
new_splitGT12(ywz1829, ywz1830, ywz1831, ywz1832, ywz1833, ywz1834, True, cc) → new_mkVBalBranch4(ywz1829, ywz1830, new_splitGT7(ywz1832, ywz1834, cc), ywz1833, cc)
new_mkBalBranch6MkBalBranch46(ywz1023, ywz73, ywz70, ywz71, ywz1022, h) → new_mkBalBranch6MkBalBranch43(ywz1023, ywz73, ywz70, ywz71, ywz1022, h)
new_primMinusNat0(Succ(ywz112100), Succ(ywz111900)) → new_primMinusNat0(ywz112100, ywz111900)
new_splitLT30(Neg(Zero), ywz41, ywz42, ywz43, ywz44, Pos(Zero), h) → ywz43
new_splitLT30(Pos(Zero), ywz41, ywz42, ywz43, ywz44, Neg(Zero), h) → ywz43
new_primPlusNat0(ywz295) → Succ(Succ(ywz295))
new_splitGT24(x0, x1, x2, x3, x4, x5, x6)
new_splitLT30(Pos(Zero), x0, x1, x2, x3, Pos(Zero), x4)
new_splitLT23(x0, x1, x2, x3, x4, x5, Succ(x6), Succ(x7), x8)
new_mkVBalBranch3Size_r(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10)
new_primPlusNat3(Succ(x0))
new_mkBalBranch6MkBalBranch41(x0, x1, x2, x3, x4, Neg(Zero), Pos(Zero), x5)
new_mkBalBranch6MkBalBranch41(x0, x1, x2, x3, x4, Pos(Zero), Neg(Zero), x5)
new_splitGT30(Pos(Zero), x0, x1, x2, x3, Pos(Succ(x4)), x5)
new_addToFM_C5(EmptyFM, x0, x1, x2)
new_mkBalBranch6MkBalBranch44(x0, x1, x2, x3, x4, Zero, Succ(x5), x6)
new_mkBalBranch6MkBalBranch34(x0, EmptyFM, x1, x2, x3, x4)
new_addToFM_C12(x0, x1, x2, x3, x4, x5, x6, Zero, Zero, x7)
new_mkVBalBranch1(x0, x1, EmptyFM, x2, x3)
new_primMinusNat0(Zero, Zero)
new_lt(Pos(Zero), Neg(Zero))
new_lt(Neg(Zero), Pos(Zero))
new_sr(Pos(x0))
new_addToFM_C0(Branch(x0, x1, x2, x3, x4), x5, x6, x7)
new_esEs3(Zero, Succ(x0))
new_addToFM_C5(Branch(x0, x1, x2, x3, x4), x5, x6, x7)
new_mkBalBranch6MkBalBranch46(x0, x1, x2, x3, x4, x5)
new_splitLT9(Branch(x0, x1, x2, x3, x4), x5)
new_primMinusNat0(Succ(x0), Zero)
new_mkBalBranch6MkBalBranch36(x0, x1, x2, x3, x4, Neg(Succ(x5)), Pos(x6), x7)
new_mkBalBranch6MkBalBranch36(x0, x1, x2, x3, x4, Pos(Succ(x5)), Neg(x6), x7)
new_primPlusNat1
new_mkBalBranch6MkBalBranch01(x0, x1, x2, x3, x4, x5, x6, EmptyFM, x7, False, x8)
new_splitGT30(Pos(x0), x1, x2, x3, x4, Neg(Succ(x5)), x6)
new_splitGT30(Neg(x0), x1, x2, x3, x4, Pos(Succ(x5)), x6)
new_splitLT23(x0, x1, x2, x3, x4, x5, Zero, Succ(x6), x7)
new_mkVBalBranch30(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12)
new_primPlusNat5(Zero)
new_mkBalBranch1(x0, x1, x2, x3)
new_splitLT13(x0, x1, x2, x3, x4, x5, Succ(x6), Zero, x7)
new_splitGT30(Pos(Zero), x0, x1, x2, x3, Pos(Zero), x4)
new_addToFM_C13(x0, x1, x2, x3, x4, x5, x6, Zero, Zero, x7)
new_mkBalBranch6MkBalBranch36(x0, x1, x2, x3, x4, Pos(Zero), Pos(Succ(x5)), x6)
new_lt(Pos(Zero), Pos(Zero))
new_splitGT30(Neg(Succ(x0)), x1, x2, x3, x4, Pos(Zero), x5)
new_splitGT30(Pos(Succ(x0)), x1, x2, x3, x4, Neg(Zero), x5)
new_mkVBalBranch5(x0, x1, x2, x3, x4, x5, x6, EmptyFM, x7)
new_mkBalBranch6MkBalBranch44(x0, x1, x2, x3, x4, Zero, Zero, x5)
new_mkBalBranch6MkBalBranch32(x0, x1, x2, x3, x4, Zero, x5, x6)
new_mkBalBranch6MkBalBranch33(x0, x1, x2, x3, x4, Succ(x5), Succ(x6), x7)
new_splitLT24(x0, x1, x2, x3, x4, x5, Succ(x6), Zero, x7)
new_splitLT13(x0, x1, x2, x3, x4, x5, Zero, Succ(x6), x7)
new_splitLT23(x0, x1, x2, x3, x4, x5, Zero, Zero, x6)
new_splitLT30(Pos(Zero), x0, x1, x2, x3, Pos(Succ(x4)), x5)
new_splitGT6(EmptyFM, x0)
new_splitGT13(x0, x1, x2, x3, x4, x5, True, x6)
new_mkBranchUnbox(x0, x1, x2, x3, x4, x5)
new_splitGT26(x0, x1, x2, x3, x4, x5, x6)
new_mkBalBranch6MkBalBranch11(x0, x1, x2, x3, x4, x5, x6, x7, x8, True, x9)
new_splitGT7(Branch(x0, x1, x2, x3, x4), x5, x6)
new_mkBalBranch(x0, x1, x2, x3, x4)
new_sizeFM(Branch(x0, x1, x2, x3, x4), x5)
new_mkBalBranch6MkBalBranch31(x0, x1, x2, x3, x4, x5)
new_mkVBalBranch40(x0, x1, x2, x3, x4, x5, x6, x7)
new_mkBalBranch6MkBalBranch5(x0, x1, x2, x3, x4, False, x5)
new_addToFM_C20(Neg(Succ(x0)), x1, x2, x3, x4, Neg(Succ(x5)), x6, False, x7)
new_addToFM_C20(Pos(Succ(x0)), x1, x2, x3, x4, Neg(Zero), x5, False, x6)
new_addToFM_C20(Neg(Succ(x0)), x1, x2, x3, x4, Pos(Zero), x5, False, x6)
new_splitLT6(Branch(x0, x1, x2, x3, x4), x5, x6)
new_addToFM(x0, x1, x2, x3, x4, x5, x6, x7)
new_esEs3(Succ(x0), Succ(x1))
new_mkBalBranch6MkBalBranch5(x0, x1, x2, x3, x4, True, x5)
new_splitGT25(x0, x1, x2, x3, x4, x5, Succ(x6), Succ(x7), x8)
new_mkVBalBranch5(x0, x1, x2, x3, x4, x5, x6, Branch(x7, x8, x9, x10, x11), x12)
new_mkVBalBranch1(x0, x1, Branch(x2, x3, x4, x5, x6), EmptyFM, x7)
new_mkBalBranch6MkBalBranch37(x0, x1, x2, x3, x4, x5, Zero, x6)
new_mkVBalBranch3MkVBalBranch20(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, False, x12)
new_mkVBalBranch3MkVBalBranch20(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, True, x12)
new_addToFM_C20(Pos(Succ(x0)), x1, x2, x3, x4, Pos(Succ(x5)), x6, False, x7)
new_addToFM00(x0, x1, x2)
new_splitGT7(EmptyFM, x0, x1)
new_primPlusNat5(Succ(x0))
new_primMulNat1(Zero)
new_mkBalBranch6MkBalBranch48(x0, x1, x2, x3, x4, x5, Succ(x6), x7)
new_splitLT30(Neg(Zero), x0, x1, x2, x3, Neg(Zero), x4)
new_addToFM_C20(Pos(x0), x1, x2, x3, x4, Neg(Succ(x5)), x6, False, x7)
new_mkBalBranch6MkBalBranch33(x0, x1, x2, x3, x4, Zero, Succ(x5), x6)
new_addToFM_C20(Neg(x0), x1, x2, x3, x4, Pos(Succ(x5)), x6, False, x7)
new_splitLT30(Pos(x0), x1, x2, x3, x4, Neg(Succ(x5)), x6)
new_mkBalBranch6MkBalBranch35(x0, x1, x2, x3, x4, x5)
new_sr(Neg(x0))
new_addToFM_C13(x0, x1, x2, x3, x4, x5, x6, Zero, Succ(x7), x8)
new_primPlusNat2(Zero, Zero)
new_splitLT7(Branch(x0, x1, x2, x3, x4), x5)
new_splitLT23(x0, x1, x2, x3, x4, x5, Succ(x6), Zero, x7)
new_mkBalBranch6MkBalBranch45(x0, x1, x2, x3, EmptyFM, x4)
new_splitLT24(x0, x1, x2, x3, x4, x5, Zero, Zero, x6)
new_mkVBalBranch6(x0, Branch(x1, x2, x3, x4, x5), Branch(x6, x7, x8, x9, x10), x11)
new_splitLT30(Neg(x0), x1, x2, Branch(x3, x4, x5, x6, x7), Branch(x8, x9, x10, x11, x12), Pos(Succ(x13)), x14)
new_splitGT25(x0, x1, x2, x3, x4, x5, Zero, Zero, x6)
new_splitLT30(Neg(Zero), x0, x1, x2, x3, Pos(Zero), x4)
new_splitLT30(Pos(Zero), x0, x1, x2, x3, Neg(Zero), x4)
new_mkBalBranch6MkBalBranch36(x0, x1, x2, x3, x4, Pos(Zero), Pos(Zero), x5)
new_splitLT24(x0, x1, x2, x3, x4, x5, Zero, Succ(x6), x7)
new_splitGT23(x0, x1, x2, x3, x4, x5, Succ(x6), Zero, x7)
new_mkBalBranch6MkBalBranch34(x0, Branch(x1, x2, x3, x4, x5), x6, x7, x8, x9)
new_esEs0
new_mkVBalBranch31(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12)
new_splitGT30(Neg(Succ(x0)), x1, x2, x3, x4, Neg(Succ(x5)), x6)
new_lt(Pos(Succ(x0)), Pos(x1))
new_mkBalBranch6MkBalBranch41(x0, x1, x2, x3, x4, Pos(Zero), Pos(Zero), x5)
new_esEs1
new_sizeFM0(EmptyFM, x0, x1)
new_primPlusNat3(Zero)
new_mkBalBranch6MkBalBranch45(x0, x1, x2, x3, Branch(x4, x5, x6, x7, x8), x9)
new_mkVBalBranch3MkVBalBranch10(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, True, x12)
new_addToFM_C13(x0, x1, x2, x3, x4, x5, x6, Succ(x7), Zero, x8)
new_addToFM_C12(x0, x1, x2, x3, x4, x5, x6, Succ(x7), Succ(x8), x9)
new_mkBalBranch6MkBalBranch41(x0, x1, x2, x3, x4, Pos(Succ(x5)), Pos(x6), x7)
new_splitLT30(Pos(Succ(x0)), x1, x2, x3, x4, Pos(Zero), x5)
new_splitGT8(EmptyFM, x0)
new_splitGT25(x0, x1, x2, x3, x4, x5, Zero, Succ(x6), x7)
new_splitGT25(x0, x1, x2, x3, x4, x5, Succ(x6), Zero, x7)
new_mkBalBranch6MkBalBranch11(x0, x1, x2, x3, x4, EmptyFM, x5, x6, x7, False, x8)
new_sizeFM(EmptyFM, x0)
new_mkBalBranch6MkBalBranch37(x0, x1, x2, x3, x4, x5, Succ(x6), x7)
new_primMulNat0(x0)
new_addToFM_C20(Pos(Zero), x0, x1, x2, x3, Neg(Zero), x4, False, x5)
new_addToFM_C20(Neg(Zero), x0, x1, x2, x3, Pos(Zero), x4, False, x5)
new_sizeFM0(Branch(x0, x1, x2, x3, x4), x5, x6)
new_primPlusNat2(Succ(x0), Succ(x1))
new_mkVBalBranch1(x0, x1, Branch(x2, x3, x4, x5, x6), Branch(x7, x8, x9, x10, x11), x12)
new_splitLT8(EmptyFM, x0, x1)
new_mkBalBranch6MkBalBranch41(x0, x1, x2, x3, x4, Pos(Succ(x5)), Neg(x6), x7)
new_mkBalBranch6MkBalBranch41(x0, x1, x2, x3, x4, Neg(Succ(x5)), Pos(x6), x7)
new_addToFM_C11(x0, x1, x2, x3, x4, x5, x6, x7)
new_ps(Pos(x0), Pos(x1))
new_splitGT12(x0, x1, x2, x3, x4, x5, True, x6)
new_splitGT12(x0, x1, x2, x3, x4, x5, False, x6)
new_mkVBalBranch2(x0, x1, x2, x3, x4, x5, x6, Branch(x7, x8, x9, x10, x11), x12)
new_splitLT13(x0, x1, x2, x3, x4, x5, Succ(x6), Succ(x7), x8)
new_mkBalBranch6MkBalBranch36(x0, x1, x2, x3, x4, Pos(Succ(x5)), Pos(x6), x7)
new_primMulNat(Zero)
new_sr0(Neg(x0))
new_mkBalBranch6MkBalBranch44(x0, x1, x2, x3, x4, Succ(x5), Zero, x6)
new_addToFM_C20(Neg(Zero), x0, x1, x2, x3, Neg(Zero), x4, False, x5)
new_lt(Pos(Zero), Neg(Succ(x0)))
new_lt(Neg(Zero), Pos(Succ(x0)))
new_addToFM1(x0, x1, x2, x3)
new_mkBalBranch6MkBalBranch36(x0, x1, x2, x3, x4, Neg(Zero), Pos(Zero), x5)
new_mkBalBranch6MkBalBranch36(x0, x1, x2, x3, x4, Pos(Zero), Neg(Zero), x5)
new_mkBalBranch6MkBalBranch41(x0, x1, x2, x3, x4, Neg(Zero), Neg(Succ(x5)), x6)
new_splitLT14(x0, x1, x2, x3, x4, x5, Zero, Zero, x6)
new_mkBalBranch6MkBalBranch01(x0, x1, x2, x3, x4, x5, x6, x7, x8, True, x9)
new_lt(Neg(Zero), Neg(Zero))
new_mkBalBranch6MkBalBranch41(x0, x1, x2, x3, x4, Neg(Zero), Neg(Zero), x5)
new_lt(Neg(Zero), Neg(Succ(x0)))
new_splitLT14(x0, x1, x2, x3, x4, x5, Succ(x6), Zero, x7)
new_primMinusNat0(Zero, Succ(x0))
new_mkVBalBranch2(x0, x1, x2, x3, x4, x5, x6, EmptyFM, x7)
new_mkBalBranch6MkBalBranch41(x0, x1, x2, x3, x4, Neg(Zero), Pos(Succ(x5)), x6)
new_mkBalBranch6MkBalBranch41(x0, x1, x2, x3, x4, Pos(Zero), Neg(Succ(x5)), x6)
new_mkBalBranch6MkBalBranch36(x0, x1, x2, x3, x4, Neg(Zero), Pos(Succ(x5)), x6)
new_mkBalBranch6MkBalBranch36(x0, x1, x2, x3, x4, Pos(Zero), Neg(Succ(x5)), x6)
new_splitLT30(Neg(x0), x1, x2, Branch(x3, x4, x5, x6, x7), EmptyFM, Pos(Succ(x8)), x9)
new_esEs2
new_primPlusNat4(Zero)
new_mkBranch(x0, x1, x2, x3, x4, x5, x6)
new_splitGT6(Branch(x0, x1, x2, x3, x4), x5)
new_addToFM0(x0, x1, x2, x3)
new_lt(Pos(Succ(x0)), Neg(x1))
new_lt(Neg(Succ(x0)), Pos(x1))
new_mkBalBranch6MkBalBranch30(x0, x1, x2, x3, x4, x5)
new_addToFM_C30(x0, x1, x2, x3, x4, x5, x6, x7)
new_splitLT30(Neg(x0), x1, x2, EmptyFM, x3, Pos(Succ(x4)), x5)
new_addToFM_C13(x0, x1, x2, x3, x4, x5, x6, Succ(x7), Succ(x8), x9)
new_mkBalBranch6MkBalBranch41(x0, x1, x2, x3, x4, Pos(Zero), Pos(Succ(x5)), x6)
new_mkBalBranch6MkBalBranch36(x0, x1, x2, x3, x4, Neg(Zero), Neg(Succ(x5)), x6)
new_splitGT23(x0, x1, x2, x3, x4, x5, Succ(x6), Succ(x7), x8)
new_addToFM_C20(Pos(Zero), x0, x1, x2, x3, Pos(Succ(x4)), x5, False, x6)
new_mkBalBranch6MkBalBranch33(x0, x1, x2, x3, x4, Zero, Zero, x5)
new_mkBalBranch6Size_l(x0, x1, x2, x3, x4)
new_addToFM_C4(Branch(x0, x1, x2, x3, x4), x5, x6, x7)
new_addToFM_C4(EmptyFM, x0, x1, x2)
new_lt(Neg(Succ(x0)), Neg(x1))
new_splitGT5(Branch(x0, x1, x2, x3, x4), x5, x6)
new_mkVBalBranch6(x0, Branch(x1, x2, x3, x4, x5), EmptyFM, x6)
new_splitGT23(x0, x1, x2, x3, x4, x5, Zero, Succ(x6), x7)
new_mkBalBranch6MkBalBranch36(x0, x1, x2, x3, x4, Neg(Succ(x5)), Neg(x6), x7)
new_mkBalBranch6MkBalBranch42(x0, x1, x2, x3, x4, x5)
new_splitLT9(EmptyFM, x0)
new_mkBalBranch0(x0, x1, x2, x3, x4)
new_addToFM_C20(Pos(Succ(x0)), x1, x2, x3, x4, Pos(Zero), x5, False, x6)
new_mkBalBranch6MkBalBranch47(x0, x1, x2, x3, x4, Succ(x5), x6, x7)
new_splitLT30(Neg(Succ(x0)), x1, x2, x3, x4, Pos(Zero), x5)
new_splitLT30(Pos(Succ(x0)), x1, x2, x3, x4, Neg(Zero), x5)
new_mkVBalBranch7(x0, x1, EmptyFM, x2, x3, x4, x5, x6, x7)
new_splitGT30(Pos(Zero), x0, x1, x2, x3, Neg(Zero), x4)
new_splitGT30(Neg(Zero), x0, x1, x2, x3, Pos(Zero), x4)
new_splitLT8(Branch(x0, x1, x2, x3, x4), x5, x6)
new_splitLT6(EmptyFM, x0, x1)
new_primPlusNat2(Zero, Succ(x0))
new_addToFM_C12(x0, x1, x2, x3, x4, x5, x6, Zero, Succ(x7), x8)
new_mkVBalBranch4(x0, x1, EmptyFM, x2, x3)
new_splitLT30(Neg(Succ(x0)), x1, x2, x3, x4, Neg(Succ(x5)), x6)
new_splitLT11(x0, x1, x2, x3, x4, x5, x6)
new_emptyFM(x0)
new_primPlusNat4(Succ(x0))
new_mkVBalBranch3MkVBalBranch10(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, False, x12)
new_splitLT30(Pos(Succ(x0)), x1, x2, x3, x4, Pos(Succ(x5)), x6)
new_primPlusNat2(Succ(x0), Zero)
new_addToFM_C20(x0, x1, x2, x3, x4, x5, x6, True, x7)
new_mkVBalBranch4(x0, x1, Branch(x2, x3, x4, x5, x6), EmptyFM, x7)
new_splitGT30(Pos(Succ(x0)), x1, x2, x3, x4, Pos(Succ(x5)), x6)
new_splitLT7(EmptyFM, x0)
new_splitLT40(x0, x1)
new_splitLT30(Neg(Succ(x0)), x1, x2, x3, x4, Neg(Zero), x5)
new_splitLT30(Neg(Zero), x0, x1, x2, x3, Neg(Succ(x4)), x5)
new_splitGT13(x0, x1, x2, x3, x4, x5, False, x6)
new_addToFM_C20(Neg(Succ(x0)), x1, x2, x3, x4, Neg(Zero), x5, False, x6)
new_splitLT24(x0, x1, x2, x3, x4, x5, Succ(x6), Succ(x7), x8)
new_addToFM_C20(Neg(Zero), x0, x1, x2, x3, Neg(Succ(x4)), x5, False, x6)
new_mkBalBranch6MkBalBranch01(x0, x1, x2, x3, x4, x5, x6, Branch(x7, x8, x9, x10, x11), x12, False, x13)
new_primMulNat1(Succ(x0))
new_addToFM_C14(x0, x1, x2, x3, x4, x5, x6, x7)
new_mkBalBranch6MkBalBranch40(x0, x1, x2, x3, x4, x5, x6)
new_mkBalBranch6MkBalBranch11(x0, x1, x2, x3, x4, Branch(x5, x6, x7, x8, x9), x10, x11, x12, False, x13)
new_splitGT30(Neg(Zero), x0, x1, x2, x3, Neg(Zero), x4)
new_splitLT14(x0, x1, x2, x3, x4, x5, Zero, Succ(x6), x7)
new_splitGT5(EmptyFM, x0, x1)
new_mkBalBranch6MkBalBranch36(x0, x1, x2, x3, x4, Neg(Zero), Neg(Zero), x5)
new_splitGT30(Neg(Zero), x0, x1, x2, x3, Neg(Succ(x4)), x5)
new_mkBalBranch6MkBalBranch48(x0, x1, x2, x3, x4, x5, Zero, x6)
new_addToFM_C12(x0, x1, x2, x3, x4, x5, x6, Succ(x7), Zero, x8)
new_splitGT23(x0, x1, x2, x3, x4, x5, Zero, Zero, x6)
new_splitGT30(Pos(Succ(x0)), x1, x2, x3, x4, Pos(Zero), x5)
new_primPlusNat0(x0)
new_mkVBalBranch4(x0, x1, Branch(x2, x3, x4, x5, x6), Branch(x7, x8, x9, x10, x11), x12)
new_mkBalBranch6Size_r(x0, x1, x2, x3, x4)
new_splitLT26(x0, x1, x2, x3, x4, x5, x6)
new_ps(Neg(x0), Pos(x1))
new_ps(Pos(x0), Neg(x1))
new_mkBalBranch6MkBalBranch41(x0, x1, x2, x3, x4, Neg(Succ(x5)), Neg(x6), x7)
new_mkVBalBranch7(x0, x1, Branch(x2, x3, x4, x5, x6), x7, x8, x9, x10, x11, x12)
new_mkBalBranch6MkBalBranch43(x0, x1, x2, x3, x4, x5)
new_splitLT12(x0, x1, x2, x3, x4, x5, x6)
new_primMinusNat0(Succ(x0), Succ(x1))
new_mkBalBranch6MkBalBranch32(x0, x1, x2, x3, x4, Succ(x5), x6, x7)
new_mkVBalBranch3Size_l(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10)
new_addToFM_C0(EmptyFM, x0, x1, x2)
new_mkBalBranch6MkBalBranch47(x0, x1, x2, x3, x4, Zero, x5, x6)
new_splitLT25(x0, x1, x2, x3, x4, x5, x6)
new_primMulNat(Succ(x0))
new_mkBalBranch6MkBalBranch44(x0, x1, x2, x3, x4, Succ(x5), Succ(x6), x7)
new_mkBalBranch6MkBalBranch33(x0, x1, x2, x3, x4, Succ(x5), Zero, x6)
new_mkVBalBranch6(x0, EmptyFM, x1, x2)
new_splitLT14(x0, x1, x2, x3, x4, x5, Succ(x6), Succ(x7), x8)
new_splitLT13(x0, x1, x2, x3, x4, x5, Zero, Zero, x6)
new_sr0(Pos(x0))
new_addToFM_C20(Pos(Zero), x0, x1, x2, x3, Pos(Zero), x4, False, x5)
new_lt(Pos(Zero), Pos(Succ(x0)))
new_esEs3(Succ(x0), Zero)
new_ps(Neg(x0), Neg(x1))
new_esEs3(Zero, Zero)
new_splitGT8(Branch(x0, x1, x2, x3, x4), x5)
new_splitGT30(Neg(Succ(x0)), x1, x2, x3, x4, Neg(Zero), x5)
From the DPs we obtained the following set of size-change graphs: